diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/android/.idea/.name b/android/.idea/.name new file mode 100644 index 0000000..86beff4 --- /dev/null +++ b/android/.idea/.name @@ -0,0 +1 @@ +Farm Alarm \ No newline at end of file diff --git a/android/.idea/compiler.xml b/android/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/android/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/.idea/copyright/profiles_settings.xml b/android/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/android/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/android/.idea/encodings.xml b/android/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/android/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml new file mode 100644 index 0000000..cd2ead8 --- /dev/null +++ b/android/.idea/gradle.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml new file mode 100644 index 0000000..1d9d626 --- /dev/null +++ b/android/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/.idea/modules.xml b/android/.idea/modules.xml new file mode 100644 index 0000000..abc31fc --- /dev/null +++ b/android/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/.idea/runConfigurations.xml b/android/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/android/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.gitignore b/android/FarmAlarm/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/android/FarmAlarm/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/android/FarmAlarm/.idea/compiler.xml b/android/FarmAlarm/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/android/FarmAlarm/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/copyright/profiles_settings.xml b/android/FarmAlarm/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/android/FarmAlarm/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/encodings.xml b/android/FarmAlarm/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/android/FarmAlarm/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/gradle.xml b/android/FarmAlarm/.idea/gradle.xml new file mode 100644 index 0000000..0e23f8e --- /dev/null +++ b/android/FarmAlarm/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/misc.xml b/android/FarmAlarm/.idea/misc.xml new file mode 100644 index 0000000..5d19981 --- /dev/null +++ b/android/FarmAlarm/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/modules.xml b/android/FarmAlarm/.idea/modules.xml new file mode 100644 index 0000000..4673dfc --- /dev/null +++ b/android/FarmAlarm/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/.idea/runConfigurations.xml b/android/FarmAlarm/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/android/FarmAlarm/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/app/.gitignore b/android/FarmAlarm/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/android/FarmAlarm/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/android/FarmAlarm/app/build.gradle b/android/FarmAlarm/app/build.gradle new file mode 100644 index 0000000..bb18181 --- /dev/null +++ b/android/FarmAlarm/app/build.gradle @@ -0,0 +1,30 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion "24.0.1" + defaultConfig { + applicationId "com.zoblak.farmalarm" + minSdkVersion 15 + targetSdkVersion 24 + 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:24.2.1' + compile 'com.android.support:design:24.2.1' + testCompile 'junit:junit:4.12' +} diff --git a/android/FarmAlarm/app/proguard-rules.pro b/android/FarmAlarm/app/proguard-rules.pro new file mode 100644 index 0000000..b68b75f --- /dev/null +++ b/android/FarmAlarm/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /home/senadu/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 *; +#} diff --git a/android/FarmAlarm/app/src/androidTest/java/com/zoblak/farmalarm/ExampleInstrumentedTest.java b/android/FarmAlarm/app/src/androidTest/java/com/zoblak/farmalarm/ExampleInstrumentedTest.java new file mode 100644 index 0000000..e46e2e5 --- /dev/null +++ b/android/FarmAlarm/app/src/androidTest/java/com/zoblak/farmalarm/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.zoblak.farmalarm; + +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("com.zoblak.farmalarm", appContext.getPackageName()); + } +} diff --git a/android/FarmAlarm/app/src/main/AndroidManifest.xml b/android/FarmAlarm/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4acbece --- /dev/null +++ b/android/FarmAlarm/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/AlarmPollingService.java b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/AlarmPollingService.java new file mode 100644 index 0000000..6636052 --- /dev/null +++ b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/AlarmPollingService.java @@ -0,0 +1,62 @@ +package com.zoblak.farmalarm; + +import android.app.IntentService; +import android.content.Intent; +import android.content.Context; + +/** + * An {@link IntentService} subclass for handling asynchronous task requests in + * a service on a separate handler thread. + *

+ * TODO: Customize class - update intent actions, extra parameters and static + * helper methods. + */ +public class AlarmPollingService extends IntentService { + // TODO: Rename actions, choose action names that describe tasks that this + // IntentService can perform, e.g. ACTION_FETCH_NEW_ITEMS + private static final String ACTION_PING = "com.zoblak.farmalarm.action.PING"; + + // TODO: Rename parameters + private static final String CONTROLLERS = "com.zoblak.farmalarm.extra.CONTROLLLERS"; + + + public AlarmPollingService() { + super("AlarmPollingService"); + } + + /** + * Starts this service to perform action Foo with the given parameters. If + * the service is already performing a task this action will be queued. + * + * @see IntentService + */ + // TODO: Customize helper method + public static void startActionPing(Context context, String controllers) { + Intent intent = new Intent(context, AlarmPollingService.class); + intent.setAction(ACTION_PING); + intent.putExtra(CONTROLLERS, controllers); + context.startService(intent); + } + + + @Override + protected void onHandleIntent(Intent intent) { + if (intent != null) { + final String action = intent.getAction(); + if (ACTION_PING.equals(action)) { + final String controllers = intent.getStringExtra(CONTROLLERS); + handleActionPing(controllers); + } + } + } + + /** + * Handle action Foo in the provided background thread with the provided + * parameters. + */ + private void handleActionPing(String controllers) { + // do something + + } + +} diff --git a/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreen.java b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreen.java new file mode 100644 index 0000000..352c703 --- /dev/null +++ b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreen.java @@ -0,0 +1,52 @@ +package com.zoblak.farmalarm; + +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.Menu; +import android.view.MenuItem; + +public class MainScreen extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main_screen); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main_screen, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreenFragment.java b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreenFragment.java new file mode 100644 index 0000000..98b9453 --- /dev/null +++ b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/MainScreenFragment.java @@ -0,0 +1,34 @@ +package com.zoblak.farmalarm; + +import android.support.v4.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.WebSettings; +import android.webkit.WebView; + +/** + * A placeholder fragment containing a simple view. + */ +public class MainScreenFragment extends Fragment { + + public MainScreenFragment() { + + } + + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + View view = inflater.inflate(R.layout.fragment_main_screen, container, false); + + WebView webView = (WebView)view.findViewById(R.id.main_web_view); + WebSettings webSettings = webView.getSettings(); + webSettings.setJavaScriptEnabled(true); + webView.loadUrl("http://agrar.zoblak.com/alarm"); + + return view; + } +} diff --git a/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/PeriodicalPingReceiver.java b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/PeriodicalPingReceiver.java new file mode 100644 index 0000000..8cd1afe --- /dev/null +++ b/android/FarmAlarm/app/src/main/java/com/zoblak/farmalarm/PeriodicalPingReceiver.java @@ -0,0 +1,19 @@ +package com.zoblak.farmalarm; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class PeriodicalPingReceiver extends BroadcastReceiver { + public PeriodicalPingReceiver() { + } + + @Override + public void onReceive(Context context, Intent intent) { + // TODO: This method is called when the BroadcastReceiver is receiving + // an Intent broadcast. + throw new UnsupportedOperationException("Not yet implemented"); + + AlarmPollingService.startActionPing(context, ); + } +} diff --git a/android/FarmAlarm/app/src/main/res/layout/activity_main_screen.xml b/android/FarmAlarm/app/src/main/res/layout/activity_main_screen.xml new file mode 100644 index 0000000..cb8bf87 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/layout/activity_main_screen.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/android/FarmAlarm/app/src/main/res/layout/content_main_screen.xml b/android/FarmAlarm/app/src/main/res/layout/content_main_screen.xml new file mode 100644 index 0000000..fabd177 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/layout/content_main_screen.xml @@ -0,0 +1,9 @@ + diff --git a/android/FarmAlarm/app/src/main/res/layout/fragment_main_screen.xml b/android/FarmAlarm/app/src/main/res/layout/fragment_main_screen.xml new file mode 100644 index 0000000..6f8e232 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/layout/fragment_main_screen.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/android/FarmAlarm/app/src/main/res/menu/menu_main_screen.xml b/android/FarmAlarm/app/src/main/res/menu/menu_main_screen.xml new file mode 100644 index 0000000..607449f --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/menu/menu_main_screen.xml @@ -0,0 +1,10 @@ +

+ + diff --git a/android/FarmAlarm/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/FarmAlarm/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..cde69bc Binary files /dev/null and b/android/FarmAlarm/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/FarmAlarm/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/FarmAlarm/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..c133a0c Binary files /dev/null and b/android/FarmAlarm/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/FarmAlarm/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/FarmAlarm/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..bfa42f0 Binary files /dev/null and b/android/FarmAlarm/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/FarmAlarm/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/FarmAlarm/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..324e72c Binary files /dev/null and b/android/FarmAlarm/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/FarmAlarm/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/FarmAlarm/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..aee44e1 Binary files /dev/null and b/android/FarmAlarm/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/FarmAlarm/app/src/main/res/values-v21/styles.xml b/android/FarmAlarm/app/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..dbbdd40 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,9 @@ + + + + diff --git a/android/FarmAlarm/app/src/main/res/values-w820dp/dimens.xml b/android/FarmAlarm/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/android/FarmAlarm/app/src/main/res/values/colors.xml b/android/FarmAlarm/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..3ab3e9c --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/android/FarmAlarm/app/src/main/res/values/dimens.xml b/android/FarmAlarm/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..812cb7b --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values/dimens.xml @@ -0,0 +1,6 @@ + + + 16dp + 16dp + 16dp + diff --git a/android/FarmAlarm/app/src/main/res/values/strings.xml b/android/FarmAlarm/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..7a07305 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + Farm Alarm + Settings + diff --git a/android/FarmAlarm/app/src/main/res/values/styles.xml b/android/FarmAlarm/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..545b9c6 --- /dev/null +++ b/android/FarmAlarm/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + +