From 04eaa3efb7fa209f8a37ffbbea0d8fa604bdde43 Mon Sep 17 00:00:00 2001 From: Tobias Link <20160078@htblaperg.onmicrosoft.com> Date: Wed, 18 Sep 2019 17:56:23 +0200 Subject: [PATCH] Initial commit --- .gitignore | 13 ++ .idea/encodings.xml | 4 + .idea/gradle.xml | 15 ++ .idea/misc.xml | 9 + .idea/runConfigurations.xml | 12 ++ app/.gitignore | 1 + app/build.gradle | 28 +++ app/proguard-rules.pro | 21 +++ .../coffeeapp/ExampleInstrumentedTest.java | 26 +++ app/src/main/AndroidManifest.xml | 23 +++ .../perg/htl/bhif16/coffeeapp/FileHelper.java | 69 +++++++ .../htl/bhif16/coffeeapp/MainActivity.java | 76 ++++++++ .../ac/perg/htl/bhif16/coffeeapp/UserDB.java | 37 ++++ app/src/main/res/drawable-v24/achleitner.png | Bin 0 -> 19875 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 ++++ .../res/drawable/ic_launcher_background.xml | 170 +++++++++++++++++ app/src/main/res/layout/activity_main.xml | 13 ++ app/src/main/res/layout/listview_activity.xml | 40 ++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2963 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4905 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2060 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2783 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4490 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6895 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6387 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10413 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9128 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15132 bytes app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/styles.xml | 11 ++ .../htl/bhif16/coffeeapp/ExampleUnitTest.java | 17 ++ build.gradle | 27 +++ gradle.properties | 15 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++++++++++++++ gradlew.bat | 84 +++++++++ settings.gradle | 1 + 41 files changed, 943 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/at/ac/perg/htl/bhif16/coffeeapp/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/FileHelper.java create mode 100644 app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/MainActivity.java create mode 100644 app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/UserDB.java create mode 100644 app/src/main/res/drawable-v24/achleitner.png create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/listview_activity.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/test/java/at/ac/perg/htl/bhif16/coffeeapp/ExampleUnitTest.java create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b75303 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..2996d53 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..37a7509 --- /dev/null +++ b/.idea/misc.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/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..af44d37 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,28 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 28 + defaultConfig { + applicationId "at.ac.perg.htl.bhif16.coffeeapp" + minSdkVersion 21 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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/at/ac/perg/htl/bhif16/coffeeapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/at/ac/perg/htl/bhif16/coffeeapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000..788abdd --- /dev/null +++ b/app/src/androidTest/java/at/ac/perg/htl/bhif16/coffeeapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package at.ac.perg.htl.bhif16.coffeeapp; + +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.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("at.ac.perg.htl.bhif16.coffeeapp", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c19e126 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/FileHelper.java b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/FileHelper.java new file mode 100644 index 0000000..b5ca1c4 --- /dev/null +++ b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/FileHelper.java @@ -0,0 +1,69 @@ +package at.ac.perg.htl.bhif16.coffeeapp; + +import android.content.Context; +import android.os.Environment; +import android.util.Log; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +public class FileHelper { + final static String fileName = "data.txt"; + final static String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/coffeeapp/readwrite/" ; + final static String TAG = FileHelper.class.getName(); + + public static String ReadFile( Context context){ + String line = null; + + try { + FileInputStream fileInputStream = new FileInputStream (new File(path + fileName)); + InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream); + BufferedReader bufferedReader = new BufferedReader(inputStreamReader); + StringBuilder stringBuilder = new StringBuilder(); + + while ( (line = bufferedReader.readLine()) != null ) + { + stringBuilder.append(line + System.getProperty("line.separator")); + } + fileInputStream.close(); + line = stringBuilder.toString(); + + bufferedReader.close(); + } + catch(FileNotFoundException ex) { + Log.d(TAG, ex.getMessage()); + } + catch(IOException ex) { + Log.d(TAG, ex.getMessage()); + } + return line; + } + + public static boolean saveToFile( String data){ + try { + new File(path ).mkdir(); + File file = new File(path+ fileName); + if (!file.exists()) { + file.createNewFile(); + } + FileOutputStream fileOutputStream = new FileOutputStream(file,true); + fileOutputStream.write((data + System.getProperty("line.separator")).getBytes()); + + return true; + } catch(FileNotFoundException ex) { + Log.d(TAG, ex.getMessage()); + } catch(IOException ex) { + Log.d(TAG, ex.getMessage()); + } + return false; + + + } + +} + diff --git a/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/MainActivity.java b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/MainActivity.java new file mode 100644 index 0000000..50bbe7d --- /dev/null +++ b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/MainActivity.java @@ -0,0 +1,76 @@ +package at.ac.perg.htl.bhif16.coffeeapp; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.AsyncTask; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.SimpleAdapter; +import android.widget.TextView; +import android.widget.Toast; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class MainActivity extends AppCompatActivity { + + + // Array of strings for ListView Title + String[] listviewTitle = new String[]{ + "Achleitner", "Aichinger", "Bodingbauer", "Bogdan" + }; + + + int[] listviewImage = new int[]{ + R.drawable.achleitner, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background, R.drawable.ic_launcher_background + }; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Button countBtn = (Button) findViewById(R.id.count_btn); + TextView count_field = (TextView) findViewById(R.id.count_field); + + List> aList = new ArrayList>(); + for (int i = 0; i < listviewTitle.length; i++) { + HashMap hm = new HashMap(); + hm.put("listview_title", listviewTitle[i]); + hm.put("listview_image", Integer.toString(listviewImage[i])); + aList.add(hm); + } + + String[] from = {"listview_image", "listview_title", "listview_discription"}; + int[] to = {R.id.listview_image, R.id.listview_item_title}; + + SimpleAdapter simpleAdapter = new SimpleAdapter(getBaseContext(), aList, R.layout.listview_activity, from, to); + ListView androidListView = (ListView) findViewById(R.id.list_view); + androidListView.setAdapter(simpleAdapter); + countBtn.setOnClickListener(new View.OnClickListener() { + + + @Override + public void onClick(View v) { + Log.d("HURE","mog nimma"); + } + }); + } + + +} + + diff --git a/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/UserDB.java b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/UserDB.java new file mode 100644 index 0000000..4ab19b2 --- /dev/null +++ b/app/src/main/java/at/ac/perg/htl/bhif16/coffeeapp/UserDB.java @@ -0,0 +1,37 @@ +package at.ac.perg.htl.bhif16.coffeeapp; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import static android.content.Context.MODE_PRIVATE; + +public class UserDB extends SQLiteOpenHelper { + + private static final String DATABASE_NAME = "USERS.db"; + + private static final int DATABASE_VERSION = 1; + + // Database creation sql statement + private static final String create_table = "CREATE TABLE IF NOT EXISTS students(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT, drink INTEGER);"; + + public UserDB(Context context) { + super(context, DATABASE_NAME, null, DATABASE_VERSION); + } + + // Method is called during creation of the database + @Override + public void onCreate(SQLiteDatabase database) { + database.execSQL(create_table); + } + + // Method is called during an upgrade of the database, + @Override + public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){ + Log.w(UserDB.class.getName(),"Upgrading database from version " + oldVersion + " to " + + newVersion + ", which will destroy all old data"); + database.execSQL("DROP TABLE IF EXISTS FridgeItem"); + onCreate(database); + } +} diff --git a/app/src/main/res/drawable-v24/achleitner.png b/app/src/main/res/drawable-v24/achleitner.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f572989734e9601efe13b58286343893f5550e GIT binary patch literal 19875 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�v}4C*K!cnD}bNa6@v2- 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 + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..0d025f9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..82a0f41 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/layout/listview_activity.xml b/app/src/main/res/layout/listview_activity.xml new file mode 100644 index 0000000..bdc28ec --- /dev/null +++ b/app/src/main/res/layout/listview_activity.xml @@ -0,0 +1,40 @@ + + + + + + + +