diff --git a/app/build.gradle b/app/build.gradle index e6f6f0e..34b9f91 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,7 +45,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.github.martin-stone:hsv-alpha-color-picker-android:3.0.1' -} + } repositories { maven { url "https://jitpack.io" } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1ca0e14..dd9cbf7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,9 +12,12 @@ android:supportsRtl="true" android:theme="@style/Theme.Teraplex"> + @@ -22,6 +25,8 @@ diff --git a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java index 8afb0f3..c57b913 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -1,6 +1,8 @@ package de.jg_cody.Teraplex; import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; @@ -50,8 +52,8 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A .commit(); NonDeveloperMessage.maybeShow(this);*/ } - SharedPreferences p = getSharedPreferences("SETTINGS", Activity.MODE_PRIVATE); - String Language = p.getString("My_Lang", ""); + SharedPreferences p = getSharedPreferences("appsettings", Activity.MODE_PRIVATE); + String Language = p.getString("Language", ""); Locale locale = new Locale(Language); Locale.setDefault(locale); Configuration config = new Configuration(); @@ -66,15 +68,7 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A addfab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - openDialog1(); - } - }); - - FloatingActionButton removefab = findViewById(R.id.removebutton_fab); - removefab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - openDialog2(); + showChooseElement(); } }); @@ -201,5 +195,25 @@ public class MainActivity extends AppCompatActivity implements AddButtonDialog.A finishAndRemoveTask(); } } + private void showChooseElement() { + final String[] listItems = {"SINGLE BUTTON", "DOUBLE BUTTON", "OPTION3"}; + AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this); + mBuilder.setTitle("CHOOSE ELEMENT"); + mBuilder.setSingleChoiceItems(listItems, -5, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + if (i == 0) { + openDialog1(); + } else if (i == 1) { + openDialog2(); + } else if (i == 2) { + + } + dialogInterface.dismiss(); + } + }); + AlertDialog mDialog = mBuilder.create(); + mDialog.show(); + } } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Credits/CreditsViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Credits/CreditsViewModel.java index 6fe2163..0c0a5ac 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Credits/CreditsViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Credits/CreditsViewModel.java @@ -1,11 +1,8 @@ package de.jg_cody.Teraplex.ui.Credits; -import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; public class CreditsViewModel extends ViewModel { - private MutableLiveData mText; - } \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java index 3a5adcd..cf02354 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java @@ -1,6 +1,7 @@ package de.jg_cody.Teraplex.ui.Einstellungen; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.res.Configuration; @@ -60,10 +61,41 @@ public class EinstellungenFragment extends Fragment { } }); + Button Reset = root.findViewById(R.id.button_reset); + Reset.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + new AlertDialog.Builder(getContext()) + .setTitle(R.string.reset_app) + .setMessage(R.string.are_you_sure_to_reset) + + // Specifying a listener allows you to take an action before dismissing the dialog. + // The dialog is automatically dismissed when a dialog button is clicked. + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + try { + getContext().getSharedPreferences("appsettings", Context.MODE_PRIVATE).edit().clear().commit(); + startActivity(getActivity().getIntent()); + getActivity().finish(); + } catch (Exception e) { + } + + // Continue with delete operation + } + }) + + // A null listener allows the button to dismiss the dialog and take no further action. + .setNegativeButton(android.R.string.no, null) + .show(); + } + + }); return root; } + private void showChangeLanguageDialog() { final String[] listItems = {"GERMAN", "ENGLISCH", "KLINGONISCH"}; AlertDialog.Builder mBuilder = new AlertDialog.Builder(getContext()); @@ -97,8 +129,8 @@ public class EinstellungenFragment extends Fragment { Configuration config = new Configuration(); config.locale = locale; getContext().getResources().updateConfiguration(config, getContext().getResources().getDisplayMetrics()); - SharedPreferences.Editor editor = getContext().getSharedPreferences("SETTINGS", MODE_PRIVATE).edit(); - editor.putString("My_Lang", lang); + SharedPreferences.Editor editor = getContext().getSharedPreferences("appsettings", MODE_PRIVATE).edit(); + editor.putString("Language", lang); editor.apply(); } } \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenViewModel.java index 8f02641..f61a044 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenViewModel.java @@ -1,11 +1,8 @@ package de.jg_cody.Teraplex.ui.Einstellungen; -import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; public class EinstellungenViewModel extends ViewModel { - private MutableLiveData mText; - } \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java index bbd44a2..a80d1f1 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java @@ -34,7 +34,7 @@ public class SchlafzimmerFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - SharedPreferences prefs = getContext().getSharedPreferences("logindata", Context.MODE_PRIVATE); + SharedPreferences prefs = getContext().getSharedPreferences("appsettings", Context.MODE_PRIVATE); user = prefs.getString("user", null); password = prefs.getString("password", null); ip = prefs.getString("ip", null); diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java index 45c3d93..db2a177 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java @@ -12,9 +12,7 @@ import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import de.jg_cody.Teraplex.R; @@ -38,7 +36,7 @@ public class HomeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - SharedPreferences prefs = getContext().getSharedPreferences("logindata", Context.MODE_PRIVATE); + SharedPreferences prefs = getContext().getSharedPreferences("appsettings", Context.MODE_PRIVATE); user = prefs.getString("user", null); password = prefs.getString("password", null); ip = prefs.getString("ip", null); @@ -49,17 +47,10 @@ public class HomeFragment extends Fragment { final TextView textView = root.findViewById(R.id.text_home); final TextView login_data = root.findViewById(R.id.login_data); if (user == null || ip == null) { - login_data.setText("Please connect to your automationserver!"); + login_data.setText(R.string.please_login); } else { - login_data.setText("Sie sind als " + user + " bei " + ip + " angemeldet!"); + login_data.setText(getString(R.string.sie_sind_als_angemeldet).replace("{IP}", ip ).replace("{USERNAME}", user )); } - - homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); userInput = (EditText) root.findViewById(R.id.loginuserInput); passwordInput = (EditText) root.findViewById(R.id.loginpasswordInput); ipInput = (EditText) root.findViewById(R.id.ipInput); @@ -73,7 +64,7 @@ public class HomeFragment extends Fragment { user = userInput.getText().toString(); password = passwordInput.getText().toString(); ip = ipInput.getText().toString(); - SharedPreferences p = getContext().getSharedPreferences("logindata", Context.MODE_PRIVATE); + SharedPreferences p = getContext().getSharedPreferences("appsettings", Context.MODE_PRIVATE); p.edit().putString("user", user).putString("password", password).putString("ip", ip).apply(); Toast.makeText(getContext(), "Login-Daten gespeichert...", Toast.LENGTH_SHORT).show(); if (user == null || ip == null) { diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java index 95e6e66..3bcf30f 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java @@ -1,20 +1,7 @@ package de.jg_cody.Teraplex.ui.home; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; public class HomeViewModel extends ViewModel { - private MutableLiveData mText; - - public HomeViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("R.string.Welcome_to_your_HOMEAUTOMATION_APP"); - } - - - public LiveData getText() { - return mText; - } } \ No newline at end of file diff --git a/app/src/main/res/drawable/spinning_logo.gif b/app/src/main/res/drawable/spinning_logo.gif new file mode 100644 index 0000000..b4a54d0 Binary files /dev/null and b/app/src/main/res/drawable/spinning_logo.gif differ diff --git a/app/src/main/res/layout-v23/app_bar_main.xml b/app/src/main/res/layout-v23/app_bar_main.xml index 34f9d78..95ae0ff 100644 --- a/app/src/main/res/layout-v23/app_bar_main.xml +++ b/app/src/main/res/layout-v23/app_bar_main.xml @@ -36,16 +36,6 @@ android:hapticFeedbackEnabled="true" android:src="@drawable/add_black_24dp" /> - -