commit 1f233d977b2f187c42e8ad51d99e4e8c9c823542 Author: mustafa içmen Date: Mon Sep 11 23:04:34 2017 +0300 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7158618 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..77782b5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..4e29601 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,48 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.2" + defaultConfig { + applicationId "ch.pizzalink.android" + minSdkVersion 14 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'com.android.support:recyclerview-v7:25.3.1' + compile 'com.android.support:cardview-v7:25.3.1' + compile 'com.google.android.gms:play-services-maps:11.0.4' + compile 'com.google.android.gms:play-services-location:11.0.4' + compile 'com.squareup.picasso:picasso:2.5.2' + compile 'com.squareup.retrofit2:retrofit:2.1.0' + compile 'com.squareup.retrofit2:converter-gson:2.0.0' + compile 'com.squareup.okhttp3:okhttp:3.5.0' + compile 'uk.co.chrisjenx:calligraphy:2.2.0' + compile 'com.jakewharton:butterknife:8.5.1' + compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0' + compile 'com.wdullaer:materialdatetimepicker:3.1.1' + compile 'com.github.ittianyu:BottomNavigationViewEx:1.1.3' + compile 'com.github.bumptech.glide:glide:3.7.0' + compile 'io.nlopez.smartlocation:library:3.3.1' + compile 'com.afollestad.material-dialogs:core:0.9.4.5' + compile 'com.github.AndroidDeveloperLB:DialogShard:3' + testCompile 'junit:junit:4.12' + annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f74e84c --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/cimenmus/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/ch/pizzalink/android/ExampleInstrumentedTest.java b/app/src/androidTest/java/ch/pizzalink/android/ExampleInstrumentedTest.java new file mode 100644 index 0000000..c726d28 --- /dev/null +++ b/app/src/androidTest/java/ch/pizzalink/android/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package ch.pizzalink.android; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("ch.pizzalink.android", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b3320d2 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/Pizzalink.java b/app/src/main/java/ch/pizzalink/android/Pizzalink.java new file mode 100644 index 0000000..38f0c33 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/Pizzalink.java @@ -0,0 +1,48 @@ +package ch.pizzalink.android; + +import android.app.Application; + +import com.jakewharton.picasso.OkHttp3Downloader; +import com.squareup.picasso.Picasso; + +import uk.co.chrisjenx.calligraphy.CalligraphyConfig; + +/** + * Created by cimenmus on 11/09/2017. + */ + +public class Pizzalink extends Application { + + @Override + public void onCreate() { + super.onCreate(); + initCalligraphy(); + initPicasso(); + } + + private void initCalligraphy(){ + CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() + .setDefaultFontPath("fonts/AvenirNextLTProRegular.otf") + .setFontAttrId(R.attr.fontPath) + .build() + ); + } + + private void initPicasso(){ + // DISK CACHE + // Disk cache of 2% storage space up to 50MB but no less than 5MB + // 48 megabyte + //Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir(), 48 * 1024 * 1024)).build(); + Picasso picasso = new Picasso.Builder(this).downloader(new OkHttp3Downloader(getCacheDir())).build(); + Picasso.setSingletonInstance(picasso); + /* + // MEMORY CACHE + //default cache size is %15 of available memory + // LRU memory cache of 15% the available application RAM + //LruCache() takes byte parameter. Here is 4 megabyte + Picasso.Builder picassoBuilder = new Picasso.Builder(this).memoryCache(new LruCache(8 * 1024 * 1024)); + Picasso.setSingletonInstance(picassoBuilder.build()); + */ + } + +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/activity/BaseActivity.java b/app/src/main/java/ch/pizzalink/android/activity/BaseActivity.java new file mode 100644 index 0000000..be9e8c5 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/BaseActivity.java @@ -0,0 +1,33 @@ +package ch.pizzalink.android.activity; + +import android.content.Context; +import android.os.Bundle; +import android.os.PersistableBundle; +import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; + +import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; + +/** + * Created by cimenmus on 11/09/2017. + */ + +public class BaseActivity extends AppCompatActivity { + + public static BaseActivity currentActivity; + + @Override + protected void onResume() { + super.onResume(); + setCurrentActivity(this); + } + + @Override + protected void attachBaseContext(Context newBase) { + super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); + } + + public static void setCurrentActivity(BaseActivity currentActivity) { + BaseActivity.currentActivity = currentActivity; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java b/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java new file mode 100644 index 0000000..4bc1e4a --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/LoginActivity.java @@ -0,0 +1,17 @@ +package ch.pizzalink.android.activity; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +import butterknife.ButterKnife; +import ch.pizzalink.android.R; + +public class LoginActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + ButterKnife.bind(this); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java new file mode 100644 index 0000000..303c61e --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java @@ -0,0 +1,17 @@ +package ch.pizzalink.android.activity; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +import butterknife.ButterKnife; +import ch.pizzalink.android.R; + +public class MainActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + ButterKnife.bind(this); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java b/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java new file mode 100644 index 0000000..d265c5b --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/RegisterActivity.java @@ -0,0 +1,17 @@ +package ch.pizzalink.android.activity; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +import butterknife.ButterKnife; +import ch.pizzalink.android.R; + +public class RegisterActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register); + ButterKnife.bind(this); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java b/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java new file mode 100644 index 0000000..aea2ef5 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java @@ -0,0 +1,16 @@ +package ch.pizzalink.android.activity; + +import android.os.Bundle; + +import butterknife.ButterKnife; +import ch.pizzalink.android.R; + +public class SplashActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash); + ButterKnife.bind(this); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/activity/WelcomeActivity.java b/app/src/main/java/ch/pizzalink/android/activity/WelcomeActivity.java new file mode 100644 index 0000000..8b7710e --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/activity/WelcomeActivity.java @@ -0,0 +1,16 @@ +package ch.pizzalink.android.activity; + +import android.os.Bundle; + +import butterknife.ButterKnife; +import ch.pizzalink.android.R; + +public class WelcomeActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_welcome); + ButterKnife.bind(this); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiConstants.java b/app/src/main/java/ch/pizzalink/android/api/ApiConstants.java new file mode 100644 index 0000000..b4063d5 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiConstants.java @@ -0,0 +1,7 @@ +package ch.pizzalink.android.api; + +public class ApiConstants { + public static final int API_READ_TIMEOUT = 30; + public static final int API_CONNECT_TIMEOUT = 10; + public static final String API_PATH = ""; +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java new file mode 100644 index 0000000..41ae6c1 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java @@ -0,0 +1,6 @@ +package ch.pizzalink.android.api; + +public class ApiEndPoints { + private static final String PREFIX = "services/admin/index.php?route=services/news/"; + public static final String API_GET_ALL_CATEGORIES = PREFIX + "getAllCategories"; +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiError.java b/app/src/main/java/ch/pizzalink/android/api/ApiError.java new file mode 100644 index 0000000..29c335a --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiError.java @@ -0,0 +1,43 @@ +package ch.pizzalink.android.api; + +public class ApiError { + + private boolean success; + private int error_code; + private String message; + private int statusCode; + + public ApiError() {} + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public int getError_code() { + return error_code; + } + + public void setError_code(int error_code) { + this.error_code = error_code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public int getStatusCode() { + return statusCode; + } + + public void setStatusCode(int statusCode) { + this.statusCode = statusCode; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java b/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java new file mode 100644 index 0000000..b5df49d --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiErrorUtils.java @@ -0,0 +1,26 @@ +package ch.pizzalink.android.api; + +import java.io.IOException; +import java.lang.annotation.Annotation; + +import ch.pizzalink.android.activity.BaseActivity; +import ch.pizzalink.android.helper.DialogHelper; +import okhttp3.ResponseBody; +import retrofit2.Converter; +import retrofit2.Response; + +public class ApiErrorUtils { + public static ApiError parseError(Response response) { + Converter converter = ApiService.retrofit.responseBodyConverter(ApiError.class, new Annotation[0]); + ApiError error = new ApiError(); + error.setStatusCode(response.code()); + try { + error = converter.convert(response.errorBody()); + DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, error.getMessage()); + } catch (IOException e) { + return error; + } + return error; + } + +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java new file mode 100644 index 0000000..ee54aca --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java @@ -0,0 +1,125 @@ +package ch.pizzalink.android.api; + +import retrofit2.Call; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Query; + +/** + * Created by cimenmus on 04/02/2017. + */ + +public interface ApiInterface { + + /* + @GET(ApiEndPoints.API_GET_ALL_CATEGORIES) + Call getAllCategories(); + + @GET(ApiEndPoints.API_GET_ALL_AUTHORS) + Call getAllAuthors(); + + @GET(ApiEndPoints.API_GET_MAGAZINES) + Call getMagazineList(); + + @GET(ApiEndPoints.API_GET_MAIN_PAGE_NEWS) + Call getMainPageNews(); + + @GET(ApiEndPoints.API_GET_NEWS_LIST_BY_CATEGORY) + Call getNewsListByCategory(@Query("category_id") String categoryId); + + @GET(ApiEndPoints.API_GET_NEWS_DETAILS) + Call getNewsDetails(@Query("article_id") String articleId); + + @GET(ApiEndPoints.API_GET_NEWS_DETAILS) + Call getVideoNewsDetails(@Query("article_id") String articleId, @Query("video") String video); + + @GET(ApiEndPoints.API_GET_TAGS_OF_NEWS) + Call getTagsOfNews(@Query("getTagsByArticle") String articleId); + + // NOT : tag ları yazarken boşluk yerine %20 işreti koy + @GET(ApiEndPoints.API_GET_NEWS_LIST_BY_TAG) + Call getNewsListByTag(@Query("tag_name") String tagName); + + @GET(ApiEndPoints.API_GET_ARTICLES_OF_AUTHOR) + Call getArticlesOfAuthor(@Query("author_id") String authorId); + + @GET(ApiEndPoints.API_GET_ARTICLE_DETAILS) + Call getArticleDetails(@Query("article_id") String articleId); + + @GET(ApiEndPoints.API_GET_EVENT_LOCATIONS) + Call getEventLocations(); + + @GET(ApiEndPoints.API_GET_CURRENT_EVENTS) + Call getCurrentEvents(); + + @GET(ApiEndPoints.API_GET_CURRENT_EVENTS) + Call getCurrentEvents(@Query("location") String locationName); + + @GET(ApiEndPoints.API_GET_UPCOMING_EVENTS) + Call getUpcomingEvents(@Query("day") String dayCount); + + @GET(ApiEndPoints.API_GET_UPCOMING_EVENTS) + Call getUpcomingEvents(@Query("day") String dayCount, @Query("location") String locationName); + + @GET(ApiEndPoints.API_GET_SQUARE_ADS) + Call getSquareAds(); + + @GET(ApiEndPoints.API_GET_BANNER_ADS) + Call getBannerAds(); + + + @FormUrlEncoded + @POST(ApiEndPoints.API_CUSTOMER_LOGIN) + Call loginUser(@Field("email") String email, @Field("password") String password); + + @FormUrlEncoded + @POST(ApiEndPoints.API_CUSTOMER_LOG_OUT) + Call logoutUser(@Field("token") String customerToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_REGISTER_CUSTOMER) + Call registerCustomer(@Field("customer_name") String name, @Field("customer_surname") String surname, + @Field("customer_mail") String email, @Field("customer_phone") String phone, + @Field("customer_password") String password); + + @FormUrlEncoded + @POST(ApiEndPoints.API_GET_CUSTOMER_INFO) + Call getCustomerInfo(@Field("token") String customerToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_GET_STORE_CUSTOMER_INFO) + Call getStoreCustomerInfo(@Field("token") String customerToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_REFRESH_CUSTOMER_TOKEN) + Call refreshCustomerToken(@Field("refresh_token") String refreshToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_REFRESH_STORE_CUSTOMER_TOKEN) + Call refreshStoreCustomerToken(@Field("refresh_token") String refreshToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_GET_ALL_CAMPAIGNS) + Call getAllCampaigns(@Field("token") String customerToken); + + @FormUrlEncoded + @POST(ApiEndPoints.API_GET_CAMPAIGN_DETAILS) + Call getCampaignDetails(@Field("token") String customerToken, + @Field("campaign_id") String campaignId); + + @FormUrlEncoded + @POST(ApiEndPoints.API_GET_CAMPAIGN_LIST_OF_COMPANY) + Call getCampaingsOfCompany(@Field("token") String customerToken, + @Field("firm_barcode") String firmBarcode); + + @FormUrlEncoded + @POST(ApiEndPoints.API_STORE_CUSTOMER_LOGIN) + Call loginStoreCustomer(@Field("username") String email, @Field("password") String password); + + + @POST(ApiEndPoints.API_CUSTOMER_LOGIN) + Call loginUser(@Body HashMap body); + */ +} diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiService.java b/app/src/main/java/ch/pizzalink/android/api/ApiService.java new file mode 100644 index 0000000..0d8eda1 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/api/ApiService.java @@ -0,0 +1,59 @@ +package ch.pizzalink.android.api; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +import okhttp3.Interceptor; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +public class ApiService { + + private static ApiService apiService = new ApiService(); + public static ApiInterface apiInterface; + public static Retrofit retrofit; + + private ApiService() { reset();} + + public static ApiService getInstance() { + return apiService; + } + + public void reset() { + Gson gson = new GsonBuilder() + .create(); + + OkHttpClient.Builder builder = new OkHttpClient().newBuilder(); + builder.readTimeout(ApiConstants.API_READ_TIMEOUT, TimeUnit.SECONDS); + builder.connectTimeout(ApiConstants.API_CONNECT_TIMEOUT, TimeUnit.SECONDS); + + builder.addInterceptor(new Interceptor() { + @Override + public Response intercept(Interceptor.Chain chain) throws IOException { + + Request.Builder builder = chain.request().newBuilder(); + builder.addHeader("Content-Type", "application/json"); + + Request request = builder.build(); + return chain.proceed(request); + } + }); + + OkHttpClient client = builder.build(); + + retrofit = new Retrofit.Builder() + .baseUrl(ApiConstants.API_PATH) + .addConverterFactory(GsonConverterFactory.create(gson)) + .client(client) + .build(); + + apiInterface = retrofit.create(ApiInterface.class); + } + +} \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java b/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java new file mode 100644 index 0000000..7fad99a --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/DialogHelper.java @@ -0,0 +1,58 @@ +package ch.pizzalink.android.helper; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; +import com.afollestad.materialdialogs.DialogAction; +import com.afollestad.materialdialogs.MaterialDialog; + +import ch.pizzalink.android.R; +import ch.pizzalink.android.activity.BaseActivity; + +public class DialogHelper { + + public static void showDialogWithPositiveButton(Context context, String content) { + /* + new MaterialDialog.Builder(context) + .title(R.string.alert) + .content(content) + .positiveText(R.string.ok) + .positiveColor(ContextCompat.getColor(context, R.color.colorPrimary)) + .onPositive(new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + BaseActivity.currentActivity.onBackPressed(); + } + }) + .show(); + */ + } + + /* + public static void showAlertDialog(Context context, String content) { + + if(context == null) + return; + + new MaterialDialog.Builder(context) + .title(R.string.alert) + .content(content) + .positiveText(R.string.ok) + .positiveColor(ContextCompat.getColor(context, R.color.colorPrimary)) + .show(); + } + + public static void showDialogWithPositiveButtonCallback(Context context, String content, + MaterialDialog.SingleButtonCallback positiveButtonCallback) { + + new MaterialDialog.Builder(context) + .title(R.string.alert) + .content(content) + .positiveText(R.string.ok) + .positiveColor(ContextCompat.getColor(context, R.color.colorPrimary)) + .onPositive(positiveButtonCallback) + .show(); + } + */ + +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/DisplayHelper.java b/app/src/main/java/ch/pizzalink/android/helper/DisplayHelper.java new file mode 100644 index 0000000..16df6fe --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/DisplayHelper.java @@ -0,0 +1,22 @@ +package ch.pizzalink.android.helper; + +import android.util.DisplayMetrics; +import ch.pizzalink.android.activity.BaseActivity; + +public class DisplayHelper { + + public static int getScreenWidthInPixel(){ + DisplayMetrics displayMetrics = BaseActivity.currentActivity.getResources().getDisplayMetrics(); + return displayMetrics.widthPixels; + } + + public static int dpToPx(int dp) { + DisplayMetrics displayMetrics = BaseActivity.currentActivity.getResources().getDisplayMetrics(); + return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); + } + + public static int pxToDp(int px) { + DisplayMetrics displayMetrics = BaseActivity.currentActivity.getResources().getDisplayMetrics(); + return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT)); + } +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/ImageLoadHelper.java b/app/src/main/java/ch/pizzalink/android/helper/ImageLoadHelper.java new file mode 100644 index 0000000..2421db9 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/ImageLoadHelper.java @@ -0,0 +1,16 @@ +package ch.pizzalink.android.helper; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import com.squareup.picasso.Picasso; + +public class ImageLoadHelper { + + +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/NetworkHelper.java b/app/src/main/java/ch/pizzalink/android/helper/NetworkHelper.java new file mode 100644 index 0000000..870fe10 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/NetworkHelper.java @@ -0,0 +1,27 @@ +package ch.pizzalink.android.helper; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import ch.pizzalink.android.activity.BaseActivity; + +public class NetworkHelper { + + public static boolean isNetworkAvailable(){ + + ConnectivityManager connectivityManager = (ConnectivityManager) BaseActivity.currentActivity.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); + + if (activeNetworkInfo == null) + return false; + + else if (!activeNetworkInfo.isConnected()) + return false; + + else if (!activeNetworkInfo.isAvailable()) + return false; + + return true; + } + +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/PasswordHelper.java b/app/src/main/java/ch/pizzalink/android/helper/PasswordHelper.java new file mode 100644 index 0000000..e82d717 --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/PasswordHelper.java @@ -0,0 +1,18 @@ +package ch.pizzalink.android.helper; + +import java.util.regex.Pattern; + +public class PasswordHelper { + + public static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile( + "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + + "\\@" + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + + "(" + + "\\." + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + + ")+" + ); + + public static final Pattern PASSWORD_PATTERN = Pattern.compile("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$"); +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/SessionHelper.java b/app/src/main/java/ch/pizzalink/android/helper/SessionHelper.java new file mode 100644 index 0000000..cc8f3dc --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/SessionHelper.java @@ -0,0 +1,8 @@ +package ch.pizzalink.android.helper; + +/** + * Created by cimenmus on 11/09/2017. + */ + +public class SessionHelper { +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java b/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java new file mode 100644 index 0000000..10eedee --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java @@ -0,0 +1,176 @@ +package ch.pizzalink.android.helper; + +import android.content.SharedPreferences; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + + +import ch.pizzalink.android.activity.BaseActivity; + +import static android.content.Context.MODE_PRIVATE; + +/** + * Created by cimenmus on 25/06/2017. + */ + +public class SharedPrefsHelper { + + private final String SHARED_PREFS_NAME = "ch.pizzalink.android"; + + private static final String PREF_NAME_NORMAL = "com.pusulamedia.android.preferences"; + private static final String PREF_KEY_CUSTOMER = "ch.pusulaswiss.android.preferences.customer"; + private static final String PREF_KEY_STORE_CUSTOMER = "ch.pusulaswiss.android.preferences.store_customer"; + private static final String PREF_KEY_CUSTOMER_TOKEN = "ch.pusulaswiss.android.preferences.customer_token"; + private static final String PREF_KEY_CUSTOMER_LOG_IN_STATUS = "ch.pusulaswiss.android.preferences.customer_log_in_status"; + + private static final String PREF_KEY_CATEGORY_LIST = "com.pusulamedia.android.category_list"; + private static final String PREF_KEY_AUTHOR_LIST = "com.pusulamedia.android.author_list"; + private static final String PREF_KEY_MAGAZINE_LIST = "com.pusulamedia.android.magazine_list"; + + private static SharedPreferences sharedPreferences = BaseActivity.currentActivity + .getSharedPreferences(PREF_NAME_NORMAL, MODE_PRIVATE); + + private static SharedPreferences.Editor editor = sharedPreferences.edit(); + private static Gson gson = new Gson(); + + /* + public static void saveCustomer(Customer customer){ + editor.putString(PREF_KEY_CUSTOMER, gson.toJson(customer)); + editor.apply(); + } + + public static Customer getCustomer(){ + return gson.fromJson(sharedPreferences.getString(PREF_KEY_CUSTOMER, ""), Customer.class); + } + + public static void clearCustomerInfo(){ + editor.remove(PREF_KEY_CUSTOMER); + editor.apply(); + } + + public static void saveStoreCustomer(StoreCustomer storeCustomer){ + editor.putString(PREF_KEY_STORE_CUSTOMER, gson.toJson(storeCustomer)); + editor.apply(); + } + + public static StoreCustomer getStoreCustomer(){ + return gson.fromJson(sharedPreferences.getString(PREF_KEY_STORE_CUSTOMER, ""), StoreCustomer.class); + } + + public static void clearStoreCustomerInfo(){ + editor.remove(PREF_KEY_STORE_CUSTOMER); + editor.apply(); + } + + public static void saveCustomerToken(CustomerToken customerToken){ + editor.putString(PREF_KEY_CUSTOMER_TOKEN, gson.toJson(customerToken)); + editor.apply(); + } + + public static CustomerToken getCustomerToken(){ + return gson.fromJson(sharedPreferences.getString(PREF_KEY_CUSTOMER_TOKEN, ""), CustomerToken.class); + } + + public static void clearCustomerToken(){ + editor.remove(PREF_KEY_CUSTOMER_TOKEN); + editor.apply(); + } + + public static void setCustomerLoggedIn(boolean loggedId){ + editor.putBoolean(PREF_KEY_CUSTOMER_LOG_IN_STATUS, loggedId); + editor.apply(); + } + + public static boolean isCustomerLoggedIn(){ + return sharedPreferences.getBoolean(PREF_KEY_CUSTOMER_LOG_IN_STATUS, false); + } + + public static void saveCategoryList(ArrayList cats){ + + ArrayList categories = new ArrayList<>(); + + for(Category category : cats){ + + if(category.getName().toLowerCase().contains("&")) + category.setName(category.getName().replaceAll("(?i)&", "&")); + + if(!(category.getId().equals("1370") || category.getName().toLowerCase().equals("Uncategorized"))) + categories.add(category); + } + + sortCategories(categories); + + String categoriesJsonString = gson.toJson(categories, new TypeToken>() {}.getType()); + editor.putString(PREF_KEY_CATEGORY_LIST, categoriesJsonString); + editor.apply(); + } + + public static List readCategoryList(){ + Type categoryListType = new TypeToken>(){}.getType(); + return gson.fromJson(sharedPreferences.getString(PREF_KEY_CATEGORY_LIST, ""), categoryListType); + } + + public static void saveAuthorList(ArrayList authors){ + String authorsJsonString = gson.toJson(authors, new TypeToken>() {}.getType()); + editor.putString(PREF_KEY_AUTHOR_LIST, authorsJsonString); + editor.apply(); + } + + public static List readAuthorList(){ + Type authorListType = new TypeToken>(){}.getType(); + return gson.fromJson(sharedPreferences.getString(PREF_KEY_AUTHOR_LIST, ""), authorListType); + } + + public static void saveMagazineList(ArrayList magazines){ + String magazinesJsonString = gson.toJson(magazines, new TypeToken>() {}.getType()); + editor.putString(PREF_KEY_MAGAZINE_LIST, magazinesJsonString); + editor.apply(); + } + + public static List readMagazineList(){ + Type magazineListType = new TypeToken>(){}.getType(); + return gson.fromJson(sharedPreferences.getString(PREF_KEY_MAGAZINE_LIST, ""), magazineListType); + } + + private static void sortCategories(ArrayList categories){ + + ArrayList sortedCategories = new ArrayList<>(); + + for(int i = 0; i < 5; i++){ + sortedCategories.add(categories.get(i)); + } + + for(Category category : categories){ + + if(category.getName().toLowerCase(new Locale("tr", "TR")).equals("isviçre haberleri")) { + sortedCategories.add(category); + break; + } + } + + for(Category category : categories){ + + if(category.getName().toLowerCase(new Locale("tr", "TR")).equals("türkiyeden haberler")) { + sortedCategories.add(category); + break; + } + } + + for(Category category : categories){ + + if(!sortedCategories.contains(category)) + sortedCategories.add(category); + } + + categories.clear(); + categories.addAll(sortedCategories); + sortedCategories.clear(); + } + */ +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/TextHelper.java b/app/src/main/java/ch/pizzalink/android/helper/TextHelper.java new file mode 100644 index 0000000..972631f --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/TextHelper.java @@ -0,0 +1,27 @@ +package ch.pizzalink.android.helper; + +public class TextHelper { + + public static String parseDate(String pureDate, boolean shouldShowTime){ + + if(pureDate == null || pureDate.trim().isEmpty()) + return ""; + // 2017-03-07 11:00:00.000000 9:0:0 + + String[] pureDateArray = pureDate.split(" "); + String date = pureDateArray[0]; + + String[] dateArray = date.split("-"); + String year = dateArray[0]; + String month = dateArray[1]; + String day = dateArray[2]; + + if(!shouldShowTime) + return day + "." + month + "." + year; + + String time = pureDateArray[1]; + time = time.substring(0, 5); + + return day + "." + month + "." + year + " " + "Saat " + time; + } +} diff --git a/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java b/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java new file mode 100644 index 0000000..7daa2fa --- /dev/null +++ b/app/src/main/java/ch/pizzalink/android/helper/ViewHelper.java @@ -0,0 +1,8 @@ +package ch.pizzalink.android.helper; + +/** + * Created by cimenmus on 25/06/2017. + */ + +public class ViewHelper { +} diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..f33024e --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..38fec7d --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml new file mode 100644 index 0000000..0a24473 --- /dev/null +++ b/app/src/main/res/layout/activity_register.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 0000000..a58e5ab --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml new file mode 100644 index 0000000..8e8e36c --- /dev/null +++ b/app/src/main/res/layout/activity_welcome.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..cde69bc Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..9a078e3 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..c133a0c Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..efc028a Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..bfa42f0 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..3af2608 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..324e72c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..9bec2e6 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..aee44e1 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..34947cd Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..3ab3e9c --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..83c5738 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Pizzalink + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..5885930 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/app/src/test/java/ch/pizzalink/android/ExampleUnitTest.java b/app/src/test/java/ch/pizzalink/android/ExampleUnitTest.java new file mode 100644 index 0000000..26d98d7 --- /dev/null +++ b/app/src/test/java/ch/pizzalink/android/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package ch.pizzalink.android; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..1be9f26 --- /dev/null +++ b/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.3.3' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + maven { url 'https://jitpack.io' } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..aac7c9b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,17 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..13372ae Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..57ac199 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Sep 11 21:04:33 EEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..9d82f78 --- /dev/null +++ b/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..e7b4def --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app'