From 239429cb5e6ebd449c375f39c70f4770d54c42be Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Fri, 18 Mar 2016 15:39:38 +0100 Subject: [PATCH] Added icons for the new drawer Added profiles (not fully completed yet, but it works) Removed some unused icons --- app/build.gradle | 2 +- .../com/idlegandalf/ledd/ColorActivity.java | 108 +++++++++++-- .../ledd/components/LedStripe.java | 22 ++- .../idlegandalf/ledd/components/Profile.java | 22 +++ .../ledd/fragments/AddProfileDialog.java | 151 ++++++++++++++++++ .../idlegandalf/ledd/utils/GraphicUtils.java | 146 ----------------- .../ic_add_circle_outline_black_48dp.png | Bin 0 -> 933 bytes .../res/drawable-hdpi/ic_clear_white_24dp.png | Bin 221 -> 0 bytes .../res/drawable-hdpi/ic_clear_white_48dp.png | Bin 347 -> 0 bytes .../drawable-hdpi/ic_mode_edit_white_24dp.png | Bin 219 -> 0 bytes .../drawable-hdpi/ic_mode_edit_white_48dp.png | Bin 302 -> 0 bytes .../res/drawable-hdpi/ic_note_black_48dp.png | Bin 0 -> 277 bytes .../res/drawable-hdpi/ic_save_black_48dp.png | Bin 0 -> 368 bytes .../ic_wb_iridescent_white_48dp.png | Bin 411 -> 0 bytes .../ic_add_circle_outline_black_48dp.png | Bin 0 -> 638 bytes .../res/drawable-mdpi/ic_clear_white_24dp.png | Bin 175 -> 0 bytes .../res/drawable-mdpi/ic_clear_white_48dp.png | Bin 257 -> 0 bytes .../drawable-mdpi/ic_mode_edit_white_24dp.png | Bin 165 -> 0 bytes .../drawable-mdpi/ic_mode_edit_white_48dp.png | Bin 239 -> 0 bytes .../res/drawable-mdpi/ic_note_black_48dp.png | Bin 0 -> 192 bytes .../res/drawable-mdpi/ic_save_black_48dp.png | Bin 0 -> 264 bytes .../ic_wb_iridescent_white_48dp.png | Bin 273 -> 0 bytes .../ic_add_circle_outline_black_48dp.png | Bin 0 -> 1258 bytes .../drawable-xhdpi/ic_clear_white_24dp.png | Bin 257 -> 0 bytes .../drawable-xhdpi/ic_clear_white_48dp.png | Bin 436 -> 0 bytes .../ic_mode_edit_white_24dp.png | Bin 239 -> 0 bytes .../ic_mode_edit_white_48dp.png | Bin 355 -> 0 bytes .../res/drawable-xhdpi/ic_note_black_48dp.png | Bin 0 -> 358 bytes .../res/drawable-xhdpi/ic_save_black_48dp.png | Bin 0 -> 477 bytes .../ic_wb_iridescent_white_48dp.png | Bin 465 -> 0 bytes .../ic_add_circle_outline_black_48dp.png | Bin 0 -> 1963 bytes .../drawable-xxhdpi/ic_clear_white_24dp.png | Bin 347 -> 0 bytes .../drawable-xxhdpi/ic_clear_white_48dp.png | Bin 524 -> 0 bytes .../ic_mode_edit_white_24dp.png | Bin 302 -> 0 bytes .../ic_mode_edit_white_48dp.png | Bin 522 -> 0 bytes .../drawable-xxhdpi/ic_note_black_48dp.png | Bin 0 -> 501 bytes .../drawable-xxhdpi/ic_save_black_48dp.png | Bin 0 -> 696 bytes .../ic_wb_iridescent_white_48dp.png | Bin 573 -> 0 bytes .../ic_add_circle_outline_black_48dp.png | Bin 0 -> 2578 bytes .../drawable-xxxhdpi/ic_clear_white_24dp.png | Bin 436 -> 0 bytes .../drawable-xxxhdpi/ic_clear_white_48dp.png | Bin 702 -> 0 bytes .../ic_mode_edit_white_24dp.png | Bin 355 -> 0 bytes .../ic_mode_edit_white_48dp.png | Bin 653 -> 0 bytes .../drawable-xxxhdpi/ic_note_black_48dp.png | Bin 0 -> 678 bytes .../drawable-xxxhdpi/ic_save_black_48dp.png | Bin 0 -> 967 bytes .../ic_wb_iridescent_white_48dp.png | Bin 814 -> 0 bytes .../main/res/layout/fragment_addprofile.xml | 91 +++++++++++ .../res/layout/fragment_addprofile_item.xml | 7 + app/src/main/res/layout/navigation_header.xml | 86 ---------- app/src/main/res/values/styles.xml | 2 +- 50 files changed, 387 insertions(+), 250 deletions(-) create mode 100644 app/src/main/java/com/idlegandalf/ledd/components/Profile.java create mode 100644 app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java delete mode 100644 app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java create mode 100644 app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_mode_edit_white_24dp.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_note_black_48dp.png create mode 100644 app/src/main/res/drawable-hdpi/ic_save_black_48dp.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_wb_iridescent_white_48dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_add_circle_outline_black_48dp.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_clear_white_48dp.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_mode_edit_white_48dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_note_black_48dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_save_black_48dp.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_wb_iridescent_white_48dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_add_circle_outline_black_48dp.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_clear_white_24dp.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_mode_edit_white_24dp.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_clear_white_48dp.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_24dp.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_mode_edit_white_48dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_note_black_48dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_clear_white_48dp.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_note_black_48dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_save_black_48dp.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png create mode 100644 app/src/main/res/layout/fragment_addprofile.xml create mode 100644 app/src/main/res/layout/fragment_addprofile_item.xml delete mode 100644 app/src/main/res/layout/navigation_header.xml diff --git a/app/build.gradle b/app/build.gradle index 28a45e1..82f1d98 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,7 +76,7 @@ dependencies { compile 'com.larswerkman:HoloColorPicker:1.5@aar' compile 'com.google.guava:guava:19.0' compile 'com.thetransactioncompany:jsonrpc2-base:1.38' - compile('com.mikepenz:materialdrawer:5.1.4@aar') { + compile('com.mikepenz:materialdrawer:5.1.5@aar') { transitive = true } provided 'org.projectlombok:lombok:1.16.8' diff --git a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java index 091f15b..2c2f4d4 100644 --- a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java +++ b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java @@ -27,9 +27,11 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.annotation.Nullable; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.util.SparseArray; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -37,11 +39,15 @@ import android.view.View; import android.widget.CompoundButton; import android.widget.LinearLayout; +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; import com.idlegandalf.ledd.callbacks.RecieveColorCallback; import com.idlegandalf.ledd.callbacks.StripesCallback; import com.idlegandalf.ledd.components.HSV; import com.idlegandalf.ledd.components.LedDDaemon; import com.idlegandalf.ledd.components.LedStripe; +import com.idlegandalf.ledd.components.Profile; +import com.idlegandalf.ledd.fragments.AddProfileDialog; import com.idlegandalf.ledd.fragments.AddStripeDialog; import com.idlegandalf.ledd.helper.LedDHelper; import com.idlegandalf.ledd.utils.RateLimiter; @@ -52,10 +58,13 @@ import com.mikepenz.materialdrawer.Drawer; import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.holder.BadgeStyle; import com.mikepenz.materialdrawer.interfaces.OnCheckedChangeListener; +import com.mikepenz.materialdrawer.model.DividerDrawerItem; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; +import com.mikepenz.materialdrawer.model.SecondaryDrawerItem; import com.mikepenz.materialdrawer.model.SecondarySwitchDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; @@ -63,7 +72,7 @@ import butterknife.Bind; import butterknife.ButterKnife; import hugo.weaving.DebugLog; -public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerItemClickListener, OnCheckedChangeListener { +public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerItemClickListener, Drawer.OnDrawerItemLongClickListener, OnCheckedChangeListener { @Bind(R.id.main_layout) LinearLayout scrollView; @@ -79,12 +88,15 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI private List mDaemons; private refreshDaemonsListener daemonsListener; private List ledStripes; + private List profiles; private LedStripe mCurrentStripe; private boolean fromOnCreate = true; private boolean autoColorSet = false; private RateLimiter limiter; private boolean isRefreshRunning = false; - + private Type profileList = new TypeToken>() { + }.getType(); + private PrimaryDrawerItem menuProfiles; @Override protected void onCreate(Bundle savedInstanceState) { @@ -105,7 +117,7 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } mDaemons = new ArrayList<>(); - limiter = new RateLimiter(5.0, 100.0); + limiter = new RateLimiter(30.0, 1000); colorPicker.addSaturationBar(saturationBar); colorPicker.addValueBar(valueBar); @@ -127,12 +139,18 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI .withActivity(this) .withToolbar(toolbar) .withOnDrawerItemClickListener(this) + .withOnDrawerItemLongClickListener(this) .addStickyDrawerItems( - new PrimaryDrawerItem().withName(R.string.text_add_stripe).withTag("add_stripe").withSelectable(false), - new PrimaryDrawerItem().withName(R.string.text_settings).withTag("settings").withSelectable(false) + new PrimaryDrawerItem().withName(R.string.text_add_stripe).withTag("add_stripe").withSelectable(false).withIcon(R.drawable.ic_add_circle_black_48dp), + new PrimaryDrawerItem().withName(R.string.text_settings).withTag("settings").withSelectable(false).withIcon(R.drawable.ic_tune_black_48dp) + ) + .addDrawerItems( + new DividerDrawerItem(), + menuProfiles = new PrimaryDrawerItem().withName("Profiles").withIcon(R.drawable.ic_save_black_48dp).withSelectable(false).withIsExpanded(true) ) .build(); + menuProfiles.withSubItems(new SecondaryDrawerItem().withName("Add Profile").withTag("add_profile").withSelectable(false).withIcon(R.drawable.ic_add_circle_outline_black_48dp)); // enable Homebutton navigation to drawer if (getSupportActionBar() != null) { @@ -140,6 +158,20 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI mDrawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); } + List subProfiles = menuProfiles.getSubItems(); + if (PreferenceManager.getDefaultSharedPreferences(this).contains("profiles")) { + profiles = new Gson().fromJson(PreferenceManager.getDefaultSharedPreferences(this).getString("profiles", ""), profileList); + + for (Profile profile : profiles) { + subProfiles.add(0, new SecondaryDrawerItem().withName(profile.getName()).withTag(profile.getValues()).withSelectable(false).withIcon(R.drawable.ic_note_black_48dp)); + } + } else { + profiles = new ArrayList<>(); + } + + menuProfiles.withSubItems(subProfiles); + mDrawer.updateItem(menuProfiles); + daemonsListener = new refreshDaemonsListener(); registerReceiver(daemonsListener, new IntentFilter(ColorApplication.INTENT_ACTION_REFRESH)); } @@ -160,6 +192,8 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI @Override protected void onRestart() { super.onRestart(); + ColorApplication.getInstance().onResume(); + registerReceiver(daemonsListener, new IntentFilter(ColorApplication.INTENT_ACTION_REFRESH)); refreshStripes(); } @@ -214,7 +248,10 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI unregisterReceiver(daemonsListener); if (mCurrentStripe != null) - PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("lastStripe", mCurrentStripe.getId()).commit(); + PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("lastStripe", mCurrentStripe.getId()).apply(); + + if (profiles != null) + PreferenceManager.getDefaultSharedPreferences(this).edit().putString("profiles", new Gson().toJson(profiles, profileList)).apply(); } @Override @@ -236,21 +273,41 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } + @SuppressWarnings("unchecked") @Override public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { - if (drawerItem.isSelectable()) { + if (drawerItem.getTag() instanceof String) { + String tag = (String) drawerItem.getTag(); - if (drawerItem.getTag() instanceof String) { - String tag = (String) drawerItem.getTag(); - - if (tag.equals("add_stripe")) { + switch (tag) { + case "add_stripe": new AddStripeDialog().show(getFragmentManager(), ""); return true; - } else if (tag.equals("settings")) { + case "settings": return true; + case "add_profile": + new AddProfileDialog().show(getFragmentManager(), ""); + return true; + } + } + + if (drawerItem.getTag() instanceof SparseArray) { + SparseArray sparseArray = (SparseArray) drawerItem.getTag(); + + if (ledStripes != null) { + for (LedStripe ledStripe : ledStripes) { + String json_workaround = new Gson().toJson(sparseArray.get(ledStripe.getId())); + HSV nHSV = new Gson().fromJson(json_workaround, new TypeToken() { + }.getType()); + + if (nHSV != null) { + ledStripe.setColor(nHSV); + } } } + } + if (drawerItem.isSelectable()) { if (drawerItem.getTag() instanceof Integer) { int tag = (int) drawerItem.getTag(); @@ -265,6 +322,28 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI return false; } + @Override + public boolean onItemLongClick(View view, int position, IDrawerItem drawerItem) { + return false; + } + + public List getStripes() { + return ledStripes; + } + + @DebugLog + public void addProfile(Profile profile) { + if (profiles != null) { + profiles.add(profile); + + List subProfiles = menuProfiles.getSubItems(); + subProfiles.add(0, new SecondaryDrawerItem().withName(profile.getName()).withSelectable(false).withTag(profile.getValues())); + + menuProfiles.withSubItems(subProfiles); + mDrawer.updateItem(menuProfiles); + } + } + public void refreshStripes() { if (isRefreshRunning) return; @@ -293,8 +372,8 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } if (nDaemonMenu == null) { - nDaemonMenu = new PrimaryDrawerItem().withName(dDaemon.toString()).withTag(finalI).withSelectable(false).withIsExpanded(true); - mDrawer.addItem(nDaemonMenu); + nDaemonMenu = new PrimaryDrawerItem().withName(dDaemon.toString()).withTag(finalI).withSelectable(false).withIsExpanded(true).withIcon(R.drawable.ic_computer_black_48dp); + mDrawer.addItemAtPosition(nDaemonMenu, 0); mDaemons.add(nDaemonMenu); } @@ -438,6 +517,7 @@ public class ColorActivity extends AppCompatActivity implements Drawer.OnDrawerI } } + @Nullable @DebugLog private IDrawerItem findItemForStripe(LedStripe stripe) { for (IDrawerItem dItem : mDaemons) { diff --git a/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java b/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java index 409f1ce..b14117d 100644 --- a/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java +++ b/app/src/main/java/com/idlegandalf/ledd/components/LedStripe.java @@ -19,6 +19,7 @@ package com.idlegandalf.ledd.components; import android.graphics.Color; +import android.support.annotation.Nullable; import com.idlegandalf.ledd.ColorApplication; import com.idlegandalf.ledd.callbacks.RecieveColorCallback; @@ -90,10 +91,27 @@ public class LedStripe { } @DebugLog - public void getColor(RecieveColorCallback callback) { + public void getColor(@Nullable final RecieveColorCallback callback) { checkHelper(); - helper.getColor(this, callback); + helper.getColor(this, new RecieveColorCallback() { + @Override + public void onColorRecieved(LedStripe stripe) { + color = stripe.getColor(); + if (callback != null) + callback.onColorRecieved(LedStripe.this); + } + + @Override + public void onRecievFailed(int code, String msg) { + if (callback != null) callback.onRecievFailed(code, msg); + } + + @Override + public void onConnectionFailed(String message) { + if (callback != null) callback.onConnectionFailed(message); + } + }); } @DebugLog diff --git a/app/src/main/java/com/idlegandalf/ledd/components/Profile.java b/app/src/main/java/com/idlegandalf/ledd/components/Profile.java new file mode 100644 index 0000000..e2d62c8 --- /dev/null +++ b/app/src/main/java/com/idlegandalf/ledd/components/Profile.java @@ -0,0 +1,22 @@ +package com.idlegandalf.ledd.components; + +import android.util.SparseArray; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Profile { + private SparseArray values; + private String name; + + public Profile(SparseArray hsvHashMap) { + setValues(hsvHashMap); + } + + public Profile(String name) { + setValues(new SparseArray()); + setName(name); + } +} diff --git a/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java b/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java new file mode 100644 index 0000000..55ba864 --- /dev/null +++ b/app/src/main/java/com/idlegandalf/ledd/fragments/AddProfileDialog.java @@ -0,0 +1,151 @@ +package com.idlegandalf.ledd.fragments; + +/* + * LEDD Project + * Copyright (C) 2015 LEDD Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.design.widget.TextInputLayout; +import android.support.v7.app.AlertDialog; +import android.text.Editable; +import android.text.TextWatcher; +import android.view.View; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.Toast; + +import com.idlegandalf.ledd.ColorActivity; +import com.idlegandalf.ledd.R; +import com.idlegandalf.ledd.components.LedStripe; +import com.idlegandalf.ledd.components.Profile; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.Bind; +import butterknife.ButterKnife; +import hugo.weaving.DebugLog; + + +public class AddProfileDialog extends DialogFragment implements DialogInterface.OnShowListener { + + @Bind(R.id.input_profile_name_layout) + TextInputLayout nameLayout; + @Bind(R.id.input_profile_name) + EditText nameText; + @Bind(R.id.container_linlay) + LinearLayout checkboxContainer; + List mStripes; + List mCheckboxes; + + @DebugLog + public Dialog onCreateDialog(Bundle savedInstanceState) { + View v = View.inflate(getActivity(), R.layout.fragment_addprofile, null); + ButterKnife.bind(this, v); + + mStripes = ((ColorActivity) getActivity()).getStripes(); + mCheckboxes = new ArrayList<>(); + + for (LedStripe ledStripe : mStripes) { + CheckBox nC = (CheckBox) View.inflate(getActivity(), R.layout.fragment_addprofile_item, null); + + nC.setText(ledStripe.getName()); + mCheckboxes.add(nC); + checkboxContainer.addView(nC); + } + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setView(v).setPositiveButton("Save", null).setNegativeButton("Cancel", null); + + AlertDialog dialog = builder.create(); + + dialog.setOnShowListener(this); + + return dialog; + } + + @Override + public void onShow(final DialogInterface dialog) { + + final AlertDialog alertDialog = (AlertDialog) dialog; + + nameText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + nameLayout.setError(null); + } + }); + + alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + alertDialog.dismiss(); + } + }); + + alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (nameText.getText().toString().isEmpty()) { + nameLayout.setError("Please enter a name"); + return; + } + + int checked = 0; + for (CheckBox c : mCheckboxes) { + if (c.isChecked()) { + checked++; + mStripes.get(checkboxContainer.indexOfChild(c)).getColor(); + } + } + + if (checked < 2) { + Toast.makeText(getActivity(), "Please select at least two stripes for your profile", Toast.LENGTH_LONG).show(); + return; + } + + Profile profile = new Profile(nameText.getText().toString()); + + for (CheckBox c : mCheckboxes) { + if (c.isChecked()) { + LedStripe stripe = mStripes.get(checkboxContainer.indexOfChild(c)); + profile.getValues().append(stripe.getId(), stripe.getColor()); + } + } + + ((ColorActivity) getActivity()).addProfile(profile); + Toast.makeText(getActivity(), "Added profile " + nameText.getText().toString(), Toast.LENGTH_SHORT).show(); + dismiss(); + } + }); + } +} + diff --git a/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java b/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java deleted file mode 100644 index 56d1cee..0000000 --- a/app/src/main/java/com/idlegandalf/ledd/utils/GraphicUtils.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.idlegandalf.ledd.utils; - - -import android.graphics.Bitmap; -import android.graphics.Color; -import android.opengl.GLES30; -import android.util.Log; - -import java.nio.IntBuffer; - -public class GraphicUtils { - int fmt; - int w; - int h; - int nBytes; - int[] PBOs; - int numDownloads = 0; - int numPBOs = 0; - int dx = 0; - IntBuffer pixelBuf; - - public GraphicUtils(int fmt, int w, int h, int xbuff) { - if (PBOs != null) { - Log.w("LedD", "Already initialized. Not necessary to initialize again; or shutdown first."); - return; - } - - if (xbuff < 1 || xbuff > 10) { - Log.w("LedD", "Invalid number of buffers: more then 10 or less then 1 buffer"); - return; - } - - this.fmt = fmt; - this.w = w; - this.h = h; - this.numPBOs = xbuff; - - if (fmt == GLES30.GL_RED || fmt == GLES30.GL_GREEN || fmt == GLES30.GL_BLUE) { - this.nBytes = w * h; - } else if (fmt == GLES30.GL_RGB) { - this.nBytes = w * h * 3; - } else if (fmt == GLES30.GL_RGBA) { - this.nBytes = w * h * 4; - } else { - Log.w("LedD", "Unhandled pixel format, use GL_R, GL_RG, GL_RGB or GL_RGBA."); - } - - if (this.nBytes == 0) { - Log.w("LedD", String.format("Invalid width or height given: %d x %d", w, h)); - return; - } - - PBOs = new int[xbuff]; - - pixelBuf = IntBuffer.allocate(nBytes); - - GLES30.glGenBuffers(xbuff, PBOs, 0); - - for (int i = 0; i < xbuff; i++) { - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[i]); - GLES30.glBufferData(GLES30.GL_PIXEL_PACK_BUFFER, nBytes, null, GLES30.GL_STREAM_READ); - } - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, 0); - } - - public void download() { - long curNanos = System.nanoTime(); - - if (numDownloads < numPBOs) { - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[dx]); - GLES30.glReadPixels(0, 0, w, h, fmt, GLES30.GL_UNSIGNED_BYTE, null); - Log.d("LedD", String.format("glReadPixels() with pbo: %d", PBOs[dx])); - } else { - Log.d("LedD", String.format("glMapBuffer() with pbo: %d", PBOs[dx])); - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, PBOs[dx]); - GLES30.glBufferData(GLES30.GL_PIXEL_PACK_BUFFER, nBytes, pixelBuf, GLES30.GL_STATIC_READ); - - GLES30.glReadPixels(0, 0, w, h, fmt, GLES30.GL_UNSIGNED_BYTE, null); - } - - dx++; - dx = dx % numPBOs; - - numDownloads++; - if (numDownloads == Integer.MAX_VALUE) { - numDownloads = 0; - } - - GLES30.glBindBuffer(GLES30.GL_PIXEL_PACK_BUFFER, 0); - - Log.d("LedD", String.format("Download took: %f ms.", ((double) System.nanoTime() - curNanos) / 1000000.0)); - } - - public Bitmap getCurBufferBitmap() { - int[] b = pixelBuf.array(); - int[] bt = new int[w * h]; - - for (int i = 0; i < h; i++) { - //remember, that OpenGL bitmap is incompatible with Android bitmap - //and so, some correction need. - - for (int j = 0; j < w; j++) { - int pix = b[i * w + j]; - int pb = (pix >> 16) & 0xff; - int pr = (pix << 16) & 0x00ff0000; - int pix1 = (pix & 0xff00ff00) | pr | pb; - bt[(h - i - 1) * w + j] = pix1; - } - } - Bitmap.Config bconfig = Bitmap.Config.RGB_565; - - return Bitmap.createBitmap(bt, w, h, bconfig); - } - - public int getAvgBitmapBufferColor() { - download(); - Bitmap bitmap = getCurBufferBitmap(); - int redBucket = 0; - int greenBucket = 0; - int blueBucket = 0; - int alphaBucket = 0; - - boolean hasAlpha = bitmap.hasAlpha(); - int pixelCount = bitmap.getWidth() * bitmap.getHeight(); - int[] pixels = new int[pixelCount]; - bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight()); - - for (int y = 0, h = bitmap.getHeight(); y < h; y++) { - for (int x = 0, w = bitmap.getWidth(); x < w; x++) { - int color = pixels[x + y * w]; // x + y * width - redBucket += (color >> 16) & 0xFF; // Color.red - greenBucket += (color >> 8) & 0xFF; // Color.greed - blueBucket += (color & 0xFF); // Color.blue - if (hasAlpha) alphaBucket += (color >>> 24); // Color.alpha - } - } - - return Color.argb( - (hasAlpha) ? (alphaBucket / pixelCount) : 255, - redBucket / pixelCount, - greenBucket / pixelCount, - blueBucket / pixelCount); - } -} diff --git a/app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-hdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f75ae29328533b3747859b3c8d0e8b4e2026b865 GIT binary patch literal 933 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4B=Xkm}hEy=Vy%C=+oGEhr zWBv-Y)sr)qsz`s__Jy_Me}K1Wx#L{A_bK=E>*XbBbT|pYwUX@XMDkCA#fKmqQ}c zyV-JYncPU4t93c%p~3GJM|{IFl@&8TPUE_teAji}=580CcB#b?#hvyOSt6e@9g}@r zuHq_JB+|U@Bdh03wZ{?@lNBGh=X~zqJjG+^F-@nLCoruk)s8ji%tY0tbzuVWQfCUg z43^JKXaD$AwK7QKllh~Q>{=Es4-2~c_x&vw@mz5~eEC^fnMWszr}wR&Yaw?ALUeq{&MCP%k+pgO@6WYkhIc{jum$p7q=#` z1xhCR|6={yki2KYX|rEH?>KY*)n421(WyYXwnba$mD(@iR}q?1-0REo1+qkIBM!JJ zo)3Ruswng2;@>G-ozkx!3+EGD(PLMaxHh0|*R7pC3o=c=ok&uwSW~u)BP29gIE*{= z$~k7HwW~L7y6TjimEP+Rot49(?0RB|yV`fXj{BYW`|u8lx0g5OY`q}7)!1`^cGjEA`)XtARW2lc>8}6v-@fiZw5e78 z+6zs$B0B$VcpG7LXqU;=W2H`0U#xf-9meIm>Zcj&w}9Zs@+YPBubfXe{XfOFS4pe9 zSA3Rh$T`7-tD;^M9LiW|{Kl<%!B*~$Q*6w~xMUyho%Q!vrBYSLiYqS;w=n-{T%jX) zGjLYNDg7nW6FCDj160}yj|6MJ-T!4(2VZz+rrgDa#~3_iKi<(vY`d{(k4wpo2P&R( z9@;KC%*{8c;k30&JD>56BNxx>?C#*Je>frFVz}pxXJ(a)3T8esezZDRfpvO#hracl z$2yWtDHg|>e2+{Qw^%YImG9^IE0sR2hHaV?l-(N>kFEI7Qgz_id6^>}g|j?Pne6Ct zRIT$4d?xKJVwg9@yz|u>gCs;S!5h;`8fAr~Hy?ptzeoLDLCr4$=HwFd<22WQ%mvv4FO#mCcvm5{b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_clear_white_24dp.png deleted file mode 100644 index ceb1a1eebf2b2cc9a008f42010e144f4dab968de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_@Z z&b+)}@;))2tV`#0Br56(yCf^wyJvoR6k>ceq)zhCQOmL$a#I#hui7O#_txq6ef6j9 bQ`sZG_2#YIl(>L_fq}u()z4*}Q$iB}a64QO diff --git a/app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_clear_white_48dp.png deleted file mode 100644 index 6b717e0dda8649aa3b5f1d6851ba0dd20cc4ea66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4BDtWp%hGg7(d*dW;vw=Ws zqF;c_1UJr!5naufPb*HFq>!^AeIx&8@dUfhv-4JM(mB0J=d_l-jllx7wHFdxP9ML? z=<`y=B!cmcj>>UItCNKc3GT;_d#d~`uv;>Zt?JQ!%f6Ba3J4i*Lm25-&)VFm_B>As)xyUf9TW$UwyH zVR!epv$uZLS?%U(bqaN<*lq97I^EjQv)EI8g;6HJyV!~X_+Lx?S Yk0#iCD7Sviz`(%Z>FVdQ&MBb@0Hd;4od5s; diff --git a/app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-hdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index 02e19d04570c6f86c7885615cbc9a271a7a04873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4BeD!p349U3n_U1;xCI^Am zhsuIEF3z_L*Bn*ikzs!Az_<3K1GDe^MrRh8*F1059saHTqvZT2jWb(#X3G0C z8sDpU*m8$Cy;FKtmdHGdZ%f3EPrGt*qw?3HH6Awwf$w-7yIy8)*s$E$yn&Q6QAW14og!@(nEYx1v*V=(j!A4T6HFAEmM{vc@OCI>l3Jn~=? za2IN@n8a{oB8$R273Nz1S8`uwU9o*(>dB>)Ho=iiG6h7a%yMLtoKkkk^Fylt+y=Q1 zsp4}R`aY%#=0!hW^D+1Lj?AgX$G^RQw^HQm>d^IJ`=UN({al^8e%ijMPg(jq4lBA% fFFt2^onhJh&#kHvr`Z@77#KWV{an^LB{Ts5T-|Q` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-hdpi/ic_save_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..871291b4e6b3aab1840613e5c6a8a498a972649b GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4BntQr9hEy=Vz2@)L6e!a6 zG5t|_a}IMO^Zy)2m#D5q+5#&@w`c~cEXj0ZQI+4(=Ok4rZPFQVp7rxyzH^`R9eO!~$|dz><}=o{8K1ZFrRrT^ zp8jUlDJAxdt?i$kwXQDE&E>lq+N>6FcFO{}FlOBqeWAhJs}e-FEO>Osfp<+*RDk^I zg<>X0v(~Y?TFJa>TfsIp@3wE`Cp7HvR#>;mVYfA5R7anU+Yjo&V{2VNk z5$|%*Oy#Q*v##eWKQ^g}S6H<uW4>^2~qMIv%oE zJUmq+())(+=lhO~TmcR5GIuujN&FKrVd~1CaBR^R*LIx-c3zL72`cTk&Q#8y$fjaB z>B(`%iYpDPL>8!PS{S6eZ(bPYR<$hYQAou}i`=tqMVFfRPDZpF-QK~Z;t|%jVz-*8 zOosnVg`1X(g1xwAO{;$;rYuAVNAAr*{orylf@4iss# zf2@-9#!X1=%C&utfh`_20t+K|Ol;ZX;GHDr5WQWD^G2SibU|>-K3BsXt8Oj2(QBw1 zva)mb%I?FAGk2ajBO4^}=iIr^=YPJRbLaj;#}6J|th3$}di3Ak{i^VUoc0uti8I94 zd=@?*@O)3IRCdg^9Y?uWGU|Sc*lQs> zhZL0}_dUq0O`ciUyzY?Ts+9RTTQ0w@`1eUl-6i%p+tve$Q~0&)AE^e;c*qhfqNua- zi?&{%X2F8F!LQwZ~rZ9x-cZb9*n@ zxaRfIk~KV+WW4Kp8G?S^tejFWMpThTJ{Ka8%?heeBI=#b7JF3g_4T-ylNYtS!U0XY@fgB xlt`zip?|ZP>@FUO3rn46Te-SbFxY(J|0N$JHIr@ic?Jds22WQ%mvv4FO#u25A&>w7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_clear_white_24dp.png deleted file mode 100644 index af7f8288da6854204dcc4e6678b9053cd72032c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#Wu7jMAr_~fPTt9TKtX^d zld0>&<$4xZhIQ#O4LOS+7xO62vh-W+x^gSOx|nVrZ{J=$3xz3MZQL759fiGAAII(c zttHsODe^YmC^Iwj=j{uEFRm_653`c~$LTV+X(mSw z8*5{^QnL{MhYQ?o=a=>*wfFy;xJvZs4;RB-k6m3P){9*Ik=@E|7wGe@LQrto;zOeI zweEcEJS1N)aa#6=%ftTtu?3$y_Qm;KG0)}PcilW!@Lt$6*NWK7VGlq1M)#HnKCynj zC-d%y=f1DI)(32O_5Zcs#t5#FVdQ&MBb@0ESC#XaE2J diff --git a/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index 12b09f1d9b28e275323add8a5f26a40709b3550e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#Ii4<#Ar_~T6C|o0?En5> z|Nn2#z<-bJIegT@oR8K^yih;(B|;&R`Ra#h6374im1n>D>Fs{)x~Fjg+nu+B2&|S_ zq&jUv@`S0v4<-D)rqs(vJe8ZGS*|QHWr-$xmV&S4q_+3}?{<10TcRl+!@#h3+Q+FP U3MvbwB6<_pw<&~82-|bZ@rsCI$MlZ^6K1@R<}YMxeIxQ=&xSRTI^Wox8-?X8 z5*9u5HpvL*6q1db_~PRqmTeyHes7FAZJG5p773fP-G9)xb+Uy~1%uzBV^a=47dB0^ zvGc7tD}M5Rxv(_r|7jOK diff --git a/app/src/main/res/drawable-mdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-mdpi/ic_note_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a84aeb0d256c31dad8a33272255ecf5f0aca7ecd GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZsB?Vc`OOhJxqDu|&*ax!+8!m5*tvSgx989KPbJQk$V@Ly`gu07b%&FD z#|LJYAB<{m8XW$x7(8U3@qyU~#AOgpYv7a>_;%f)fq{`}&6?-a&mXwK#q;%f_)R|F t1ui_?@~>LUmd(uwE(vt^dbv(o?ojsKt4&k>GB7YOc)I$ztaD0e0suxVNbdju literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-mdpi/ic_save_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..eca2d92eccc5665b070d3c04e7241fbc2cbb71d5 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZsB=RI8N#4Ht4YPH}%=u&2-n4|eDQ+BK>b?9Cl$G#@zhHOjxk0>>%K} zy>p&c(>%q5hlWBSPUl1fY=XM(I6ho@LC0*D@uCF=^|$Q*=WhLdeW!BgdxPJMZjuT4 z4E~=?8Mw4O|8T!}F2G&QY8%k*Z|~75@tE;cYVx~Y+fEC+&(X5mC;aTMC>CT^l1kj; zuJOp$N$mZcVwGJ#1Pe=-eeRfQ)WFD-(4fn>jCl{cDsR!oR1VYPAmS{$nPO%v$vMXpWz2j^7NO> belgBned68H4vS|D3=9mOu6{1-oD!MZ1i+-45?szJL`6~NVv># z`!vTpcXO0xbTbMjo3EWNe$@QnBk$Fds!{_z17FxbP|dkg!5S}GD{Ly2xiZ7K=Bwhp zI2Dtn>z!^Ln<226^W&s$%}k#^U;iGLOiTNI=1kY;pL@=IH@JV-I9*RB2@G^LO>y%p z=vMz?bd2Zo8RNqedu^7@6*dX-_6+jtlm4PC_hxag?GjDFQyEJp*9*?~yL`~>RL2yq zPdrMl77oUeN{VMQ?|WD@p?gY$r1m;jT#VJpiM7Iuy)D*G#D z@W^i2)LnXIqKadaO6i((bM==GmS+EB>u%cZ`M1;JSLbpWwQgx%nWfT&)9$ZSWY||0 zXHa>bb<>Z9jom&9eBVBcPK!Lvk@Q7&ZHh(>2J;)tFt$r%_!8mtMhN0 zYScevcY!y_Vi$`hC`Fu{^6*Q&f<~EymQRrXK^r5Vc`}Zh?i)2u=04}J^DtN;e=|ZTt1;{Enp51TKKLjv%4rSYK49sxll6SbtLL>w3&mGl z`OjGX!DHt?pQEfCdl_Palxq}P)r)?mPRvnZ4O2Wdx8hM-mu;&DmqWkQW371?wog1f zQS?Ih&-jW2%|&P2!V-8Ft@*aUh0igC^}$xDRPA+h0w(r(aKB*P%Nm~dGCE=j>$w$y zw+fzicD?D^(hzq^{*l-Et~G~yBCefbE4^YIBN;q#mj|~_uzT;LQ$1ZO%DNMR+!S(IqD3fBSu|D4l9M!L>&BNh{m0kQW&#tWjUIQxoTZ-KDJk!98)l z`S%y+wM<-s5=_qiWx6;+tHi8P4U#_h2j?d z8vBnMr}C`$U=g}dY(;9&)8CN|{Idj~ZVlkx^4g~TgKOLND&3^u3|6z(Cdo@adTKAK z@l%_^G?nLtNoCFCB#yv)yh|OHpEL59#FXK*MMgQpPciCSkV0(R+```+ljM1$dEW&a zXwPt%viXgIM%hQfz`o5g2cFe+Mt)=e^16P@Mt`T`%R7#Kve;&sdgnt)@1jT-{-h6j zk~x8%>PZ`Bw?-^zt2^?b*etR6ERO=)?-hrHBI7LIT+3ZND`~}3v80k2RXUq)Eo?G4 zXsM;ya&%6*km0XMp%H4QxsPl-qPp+n&*qpio63d#RZI)Q;?JFu`?Tg@@766Z%41W_ zLs^a}-4Ya!zkE`%C?`QuQ%J>Qa}Vzmi_^AlF`vUDJr>BM2yvb$oW;>twQB;yp7TXc zi#rvMEMk76ni3@QoHyy9;U|^OmZH87Oqz%4_$I0aow{*I)=t50?jy7N8ykcakNU0q zWd7)2+`0{ORa8BBqca!ww%a66$$T~=c~;=Oj}5P%+;lQE1cPfo^YmC^Iwj=j{uEFRm_653`c~$LTV+X(mSw z8*5{^QnL{MhYQ?o=a=>*wfFy;xJvZs4;RB-k6m3P){9*Ik=@E|7wGe@LQrto;zOeI zweEcEJS1N)aa#6=%ftTtu?3$y_Qm;KG0)}PcilW!@Lt$6*NWK7VGlq1M)#HnKCynj zC-d%y=f1DI)(32O_5Zcs#t5#FVdQ&MBb@0ESC#XaE2J diff --git a/app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_clear_white_48dp.png deleted file mode 100644 index 39641921925f090e33df2767a4ee5e6d5911194f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWR(rZQhE&{oJL}@aW&d%L$PIoQo-StxTn+E zdwyKJ{-5>36#oMa;ti5>_t`xW4y$FTSfQHprB&GMR~4sq?ZKA0`@)#i{-mz-|KTpr zp!TytuDj+?bsQ|21Fu&gMvbwB6<_pw<&~82-|bZ@rsCI$MlZ^6K1@R<}YMxeIxQ=&xSRTI^Wox8-?X8 z5*9u5HpvL*6q1db_~PRqmTeyHes7FAZJG5p773fP-G9)xb+Uy~1%uzBV^a=47dB0^ zvGc7tD}M5Rxv(_r|7jOK diff --git a/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index d6668a051cd53b2ef454e8e09872339348c2ee22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWYI(XihE&{od&QQIF;JxK z;q8eTM}%@*lG(GgKmHefed+a@h9goTlNJYP@D!h)`eE*w-)kRKs+aqD^%x$LNPhEv z^G4aXY2vpdt(EGN&%a$OJX2o(VXM6M!b$S#4|VO`4!Q5EbJC5sKG-(R{9%jlWTB{w z!rQE##04JmeBM2OZTy6S&?*B}PWH9m-}y_d{JU;nOXs7lC;exvk~_VJC9*EA$z;Es zIzFh@${$`n&i1U5fq{X+ M)78&qol`;+061r#e*gdg diff --git a/app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png b/app/src/main/res/drawable-xhdpi/ic_note_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b4679ea9b90726e74ee1865b01b8a7a61fa31246 GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CW>Uz33hEy=Vy>v9t#ZltO z$79S7TaKL&Eaz|G-X>Y#R&?O$%Yx|I-Mwd5FI)9r_JH~RRgJGtT0Wmse9qFmnfZ=_ zW5*s=mkgfUCw>-&9+EhB!n5#@nWehl4A;gF^Eug{Ot5*lY}<1;B^6Uffo_2;DGNvW z1Du~2{3fs$G}$x=KVh7s!2f`yl0p3hvxTD^b}0`g3rCp)oR1j%F0czQv3HzjVCFG6 zfJt;1G6%6dR9$e_lR3}9dK%lCX0v`K#}dnBjQ1LK5@h4En0Q$Z&P@=B&ylH4lGi*c zRx%@j0S*bk)dG`67;@DcI Zs@I$N#NRXrFfcGMc)I$ztaD0e0stY2hyVZp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-xhdpi/ic_save_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ba001835a93dd223533442cd94bfd8582370b7ef GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWF7b4645?szdm}JQDo~{T zqd)8NMP-bS#JYBH9F*) z`1F5k=?~^I={v-iP6_hTEM1~#>HlVf@%id=0p0o$2{OV_HODuka5gS~KhNOEhAEtu z)65=nde7c)_>$ULnSKy$%g2M-X4uK%{84OGu3Jnb6 z3>Gta!W{4xa5=ds80^C)^QScdYq2^VwNZ51!Y5savvVd38#q zT#&_;{YHxqCh|VZxwJE^GV$aLJ4wmfV{0`2f8BbDuh=Ad(eIaBA3RFt$1<+#%sU`g zY*c-(&}pai0bcd5ZTT~re|oVk7b^ND9yd?g=-&#)`9BVRW70q8zOMi6z928nrBi;f ZIyJkjJTD@6g@J*A!PC{xWt~$(698ll&1nDt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index e7058c545292af284539fa48c9c00389a3a5d447..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CW&hT_`45?szd)q(jP=dg* zhcSyDIbM-?-N?e6c2U}FLARclV^zeEX;^Z`Ncw zpYz{OwI?Sh~8ZY8IBfrs`Ng$Ew{ATV4v*w*= z;C{%gTe~DWM4fGOoHW diff --git a/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..179a1168d81c02bea7ad52f87da4f688481fa265 GIT binary patch literal 1963 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H94rhB48Hza#taPXMV>B>Ar*{o@4n6#xh{G9 z*~saoux+J`jGiBdsA$k4q3KryJzf7EViaxix^g;RXla*smRIFP zfma>@da5RwLhQ3AF!&w}QklZhT_9Ysve!4!-0ZS>X#81AdRgw zDn@yK%zpRiNW|hdhunhuKS}nnU3IsWdX*yLK6%&S^Ixs5YAo;OYm$D*B>rQTzG65}-EH>IbK$dD zcUACAm3yAcweOhTB|jglnz{4)H_w(j6yRo7|<^BAzz}CGbs>bK+`-#e0Q)NCG#+nOHj5_c9)^?lV*0*=Q+q}3g&{%YS zeQUFcaJ!gZbxB#9k<)keel@>9&zMy|4lUkoFR;n4pN%ijZ_cvfD~k{FIel4iyx;8o z1hqU#zKS_7uL}#!K5z4A<3-0)%8T}G`1NP%@pkQAJtLWk-+p;JZRps2Y2{9txjxhV zt}oVc+1Y%FxmtBsWlO%Qth~d2$Sy5FK?7VmlPMsXCo$#lhs*Ul#|bg}N+5XZKbxrxv7d#*;ISCJ*p zTjr+z*4zI@Si`*6UA9ehaj>5d^E<}#q)U=&tanFRrpm~C3|F%qI zwAGeLzxw3a0@EF*FZXx)8TITA+sZii0i)Wi2k*0(qZ)VDC#V%Z_jf9=lyTH$Rer9J zA<}0u`M@Gd!gY~3**c;dn)pq*|u<$$0u*f zZ(^I`mLm6#?c=irZHxcxY&_Ud-QDZKR~~LKeaG)PyBa>t&{?mypsQVLLDvJu)WYxs zDc=jim+37~Qq$Jp(s(EvAXpyh6V|r7X;;It#7#w|jJ*%@%+yY^-idy5fc=PNu+f5= z4-IVv=JJzuId*JcBDk|}x7D7=u5&wet_YRaGc#I$$h@0$M)lplNxK?m8AMLr)u8ui zogjDcO%smqW*cr=G)1MoF@3r0f%w~8m%L)p^0hNO@BB=4Yhq_fFWfE{ymtEA%nuE} z3b!|ksCj)>zVnrp-{af;eg4{NRc;oS=cEK}I%LkYH}i?gUDZFDCTE{;%y--Gc|DtmZ;6fS1Un(^kd znpx5B!t{^QKA)mp?k!a@Ztedhw!-w8e#XWRv8IbdTD~iIY&T?l%UvuV<|)^nWumko z?d0PCU5yL+cmA}yv0TxX9sN5nlMdJF%G;7fnqrfiTD;4AF*TFbm@(w=#rymdJK zZ@kwm#hy~=bLl6yMslH_(S@>H=3A;Sf0=l#oy=1@Urd)d$~W**sdm>_54PPtqPtc; zTlFQ@{giG>$ggL2U%pu4WTn}&p+R6zpYlrOlnbuY9$$)!R~9j=y_9%gwUsaEi^uOb zN0n5*-uc*};e2P4+(({Z?+&YiC8aGdkF0EZEGN6q>BKJE_$hI&F{><}UyK!BIQy7n zzuLa1nvXWjS}iwsu9`PX){bWvPt=wPZN08pRZ`me(`Cuc<3?HSGrdDrSv*T#+xyhz zMP-+rSo;eFuDNz%Q#3X-cI_rlqrkgSCD?^U(U1Q$P-_`LVSiNZJ)=aoi#j{Ihv=6K8D%&eVlk9X&N z5<5RB$>`Fb33_>~5^uRqUv%J2FJQX5-||4&{q4=SOg1*lwK4Y<&HA}ZXTE9g{fnLj zi+Kv><^S7XbIq2^LGtO76B{4YpH4Roa4guLF79e_>7cBPZ`O?P3jwyZQAaL&>(1JA zQ}nY_o${Wx)@x#)rr&r}+0H7FsGF|D|GYTLu;ZxOId`#h)Auwq>fHKa(xh3bEXEdn za^8fn_p*y;i!E!B%z4UuY^tmAInKDJ)jo!yIgf4Ky#8?AIJ`PUNV0oHYQ?0ms7OcN zf3eSWYUe!BdF*mZ$!>E-0%z$J!+se{Ese!I8UYDCHqLh*2u|GSjA;M> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_clear_white_24dp.png deleted file mode 100644 index 6b717e0dda8649aa3b5f1d6851ba0dd20cc4ea66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4BDtWp%hGg7(d*dW;vw=Ws zqF;c_1UJr!5naufPb*HFq>!^AeIx&8@dUfhv-4JM(mB0J=d_l-jllx7wHFdxP9ML? z=<`y=B!cmcj>>UItCNKc3GT;_d#d~`uv;>Zt?JQ!%f6Ba3Rhybuln7Xa)F$xH2#>{3i~y?LMUs zGOi@ZFPK5@fx=z+d-oqIDegb;tUN)6fq}8b)5S5Q;?~<+zJ1LG0<4KViYFQN{Vz>7 z5M!5QqBl81SPoEOxrMVPLZ22=McV^D+ZBFNR+uvG}{`Pg)iVkjJ+T8P{#UmkI2Y6Z+ScwsXTDS|N9m; zrQ6Pv1Mf2{-9ZT2jWb(#X3G0C z8sDpU*m8$Cy;FKtmdHGdZ%f3EPrGt*qw?3HH6Awwf$w-7yIy8)*s$E$yn&Q6QAW14og!@4ZLn>~)y=m>`94ONI z(1dFxi#4nK$u})i&K<~%u;9zq)lrJ*bgen#z`gN~lt7I`(L3Apc&6;X{{{AC*}Ew# z!NKVyndOH4{T2PQXB;(Cs;^Wll;6L**EXcCV%bNb|J5C}DPf--LY_3PIKdn^@%Zc& z!u|Sz>2m&y;%w?%_EzrcSXEKek+gl%@s1ZdOiCSQUQaf>G#5OZ%)RLATnPqK!B|a0 zpT|naPP(l3vN^r;xzWrQzTN7VI@evT*wmR;Wi!*IoGE{ysCFjXMJ2wFN}~?3!WCyO zd!-z>?38jS*gNG&uye|>%hOLxSk6CD(?47(d7hrjGaFSU&Uv1~=c^XUR&cp|&=6Mr zq#>mGd4(YFfyFK+0_QgsS3KdD`fz}m-v&nb&wMT^SMi{cT~2(SJD7$Nf)6d**da0% z4_+QBW+& za69Xry}})_JYEWI&NADXIv#~Fu`bBH!1(T6UVYB~&$I8??BCv~fBwz8Bj%G-JfWy= zo6hcHOY_fq^48l9&;0c4dCI+i?;Tv6E5H1IERcKV_ka1ejEoEUe2acI?~m#52BoZe;xUTGyN3$M2`tW_;Usb9Y+)?7f-a zcHLZ^rayac#df}w$1#uf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_save_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a16cfc7141fe37ae98a2234e62b2ce3fe22d4d GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H94rhB48Hza#taNh^`0({Ar*{o@A`VlILbJD ze17a^_dB6py&mBhj^;%j&jotlu?TMBWKmsL#L0ShwS>MwqJT}uB89?-J5IGPK6q?S z!l^SQ=Eqijf5q_kIs0ATn@2ll!a(H8-VL73+W$WMn7>xvruwkV#I4c+i&E>h%lj?r zy^tWJ+uk-Q!=k3x^NXoTpNsNC^XV?L9|o#qwXjcop=HzN^3b={C0GA%jHr)FzzmNC z1`{0;l^PGZFtv8Fa0zpYs0nGnB`iBxszf{#8d-!q7Kk&bOmJZ0RGHu)r~?*Aj{)+k(ycu?u~97O^CH^$Dp(<~LdC0Cr&@Hcf+_FWJi_Tze3=2Es2-(J62 zOJ)jPFwK9tMeA%xL*B}ZzQJ2AF+?rAeJzM#)#T-mZ#2qDsQQO)+R^y!e4#rP% z_0kpuf4Y9Sa*so_$VI}hN1Ja=1iW# zACM|zbiFLt@VKC)+`-3lWT&mT=-?nIEn)xw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xxhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 3389ccc3d2310695ceb98cd02e1a59b9ccadc45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H9Lx+13>Rhybuln7gar76xc>kDpMinlKUKjK zfna_H1_tSpAirP+2D!WcWE5^cFnX7{WyAY7Ir=84hH(aZQ3){%gmh0bFfi77x;TbZ z+5Ye;{)wD$%1hB!T`?H5WWDmXT= za0;osIOniD(mrG7>T0`XKi5casfo*ZHIFlp%37JBs{6OCAXX_OoC7+4cD5p756Td2;R=ufD4+`tHnjYaKJclFfYOoUMK~ z9Uq=7I?~MHujd6~D%o^$`0E`C7Jc|q@Zrj?4_`Vyh`6?2y!Eee#>|;Fbxr>|fgR;B z0qQy^W0(GfnKNhJ4LbccBUkjj;`P;j=da(cnfA_Du(aYvPnc~-l}$&MoQtiTODX@N zJIxv&6uN9Xgh0#{FC4d=x6!ug*!BI!!z7z;f0k!#fALje(b2+~i)j~MIkr5n?wQ5m zueYjF;NeT5P@9eqUpha8xK#XdsnAlgd3jh`$wpLgo=6MF`LA<7E>UoC{~yE3DWn2& jSLAweUSs3e@7NDa*et{!){xD>z`)??>gTe~DWM4fvf?1d diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_add_circle_outline_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..428a109942b392a8a4a3490374f38a4744650c63 GIT binary patch literal 2578 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_clear_white_24dp.png deleted file mode 100644 index 39641921925f090e33df2767a4ee5e6d5911194f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWR(rZQhE&{oJL}@aW&d%L$PIoQo-StxTn+E zdwyKJ{-5>36#oMa;ti5>_t`xW4y$FTSfQHprB&GMR~4sq?ZKA0`@)#i{-mz-|KTpr zp!TytuDj+?bsQ|21Fu&g_WOc@v$j01c^Tp1V`{*wr{Pkq$H zz`!6-666=mz{_*^*pZ{3K3m#YTkY7s?Mk=KMg|5ZEl(H6kczmscO3Ji0tMI}@*FuP z@%YSN|JlAvwr>oY{cNS!*ZB{$IS(rI{<{AEdQ|q>t=CY9+Pe5SW{Y{>b^rB${xzxT z@%PHz`5))6PPkS-Z~J=Lf1w6%+M6{0Ye{@_J~*Xb)aUnqQ5&-#;Rol)b1nN5VDO;5 ziSxgf#Mkw;V9^$Nu48{!Cmh?q_`z?Rg$W1te@nM{@abFf!P}{a_~rc^8xQcarrC?% z_#2b(y}0r2dDb#G=gxW7_9N%57dX6r&a`_z_nSJs4Zn9Dc!$R6p3i-+US+R*nZ5Xn zzcCNK7dPHN&-$iZe8c_N19g>*zrM0Q`7S=;emp~6edC?;@n0Wo7XwR`Gyc8{S69vW z^Dj)@Kc-(C6Xm&nNxg0F`4e;Da7_Q@H_w~?1$|pS@9%YOksE)-E3Dn$FaO^Cr%vO- z?}ZNU+nM&tqq^=%ou0*;x;pFQ=#EA6#{FEuAA8}BKygty8|wEY{IlWzvHaVPT#E@T{}wj=6b^kLuYIFHh38K&>*w@a2kgT> w>~gMrAg^8VcIBb!<4R|rTSa3;^w#}nPcbcf{ABhC1_lNOPgg&ebxsLQ0E^at$p8QV diff --git a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_24dp.png deleted file mode 100644 index d6668a051cd53b2ef454e8e09872339348c2ee22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWYI(XihE&{od&QQIF;JxK z;q8eTM}%@*lG(GgKmHefed+a@h9goTlNJYP@D!h)`eE*w-)kRKs+aqD^%x$LNPhEv z^G4aXY2vpdt(EGN&%a$OJX2o(VXM6M!b$S#4|VO`4!Q5EbJC5sKG-(R{9%jlWTB{w z!rQE##04JmeBM2OZTy6S&?*B}PWH9m-}y_d{JU;nOXs7lC;exvk~_VJC9*EA$z;Es zIzFh@${$`n&i1U5fq{X+ M)78&qol`;+061r#e*gdg diff --git a/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_mode_edit_white_48dp.png deleted file mode 100644 index bde8b21c106d592075169ed18190030a8459a8e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE694rhB3_q?e>0w}C3h{Jt45_&F_KvNdOCUqr z!;Q?XtQ#0s2WT8&+A?i{^1rFy6gP75PFr}P*TrSg1=*QG#%JzWKCd&Hm(O{A_M9hA z?%X+e;0!v*c^Dpcs&1#g{?olS(_U|ioi^jk$^FrBr=Q=QYN}WJasKo|>1m~AwIAZA zcveqRIH~VAC%(yIKTBa9=c7MDM}DeyeD)T2K3(A)s>Gj01|biHMiwCtgQ^`dOK15O zyyosIY0_PGlO^0`KU4m{@e33*h?|gn=t&#VEA*9;m2ae5AMtl`q?ZL=i-n#AkT|k k3x>p5^tgW`|AzU0=3e0w}C%Jp<{45?szbKN|VnNh&? zU}@G>ivk0cz(Tf#K`D2v4GkEdhgde=coaY5yX2cWOM=gucurD5MO#*+u6?~r?)CD2 zZu`2WBH6dDT7PDvz?&_`Z`_@rM6A`GbDnPO~2@{G`Ldw<+I_ zBkW|eLPW~{GR26r{>B8`otOK19#kbUn3^>mKgrnB^B}#6VX@MW**CO&7!-&{z6=Wf zq@e}w7x*0d7sxiqIa)K=HkC0{v8-kI!WqT*LfC}qf&#+?2?ho>h6YB41O^5P28L@q z3@CggDeTP8k|^r0y}K?b{d;BE`ExgJByZjQJH1_x*NEq^0hj!oChHKZ#}CdNU=T@R zyp!6iFZi*~<<8x$_x}9QUh+IfTITkPM9KGQIg8s1_hfJGm6Q6gZicn=%NMh1KI9(? zvwEfMVH$JWhh2P%;0n3hFBdc?Jl&Mx{6Axw4pZ3CX}*7(dAm4cWN({&n|^Jjs#EBh z+jrtUG*p5tOA1rF_ZNCtOS-I`l$e+MRlV0w}C?(=kU45?szbA6*Hi=)iZ zhtst(#LIU+jWHK1kk!d?l#XuA$=SeGFD=kB?fJp))v{;U5BsQiPC}rU*W-##PtvXK zJJbB$mj9Y*_CBLt#fnq5_h+6Hi1{=zllNe>o$*@59VY$q2aCUdax6IirR~A3+Mfy$ z#(Nbj-q!6FxMOryF~W#rR<0z=*>5~eY3^)}n|~(%-)qO%Kn&7iY+wQ-VKxRR2;g97 z5N3jMAQUsm>jn%AJPZsl=9?!B3=9bj3=#|sYzz&I2uPCTM8wP=}Q~tpKVu| z*RU)vI#8*KrK#Hc{2{juw#)~oi8(qpH+j2?JAII8$y*W|Rk%D&B=%-&V8tu1ij{?S zpZ*v-y}Mt^@qNOXln0*dJOSz5k;^nL`k#0HJ7q@Fv|J|MgxjL0r&OM^(2mJu==S^R zp&$5U#$zAmA8QUOSw1@P`}gWh-hv|>o;^it7^Cw0nLI^TW;R?~^{Fc?<;DeuldB&& zAL2AQASYRKBH%K^N9#om`mTMZ4tu0}9$c0vms0TS{_!oA+2#EdnSG)wvKv-}ZZKHS zxTw@sU+hy%c7uj)a%w2E%gUaqoV)^YvevON84Vk@ZP>Dy@zAWJL9Wa#rmagec?H5a zy$?$%tf|xC&1l$AwPDIt1}O)5M=6K+L%VpdGE@mvFJ#V1&NRQv_$B$yQZ|l!8STjy zyaM;S;!Z62>t*E5v3JszTt4pk1yTx8=}$hc^;p2T=)36sX$2QAGnDr{3Z7ZbE3p2) z$j7Dq!gJUrQ*i9(a zuR!X6dwI=b2N~CCJC0{E)L)&c?k`elC;VasQ}?>a)F!=IFOw#Pt}Bgb&lP_YkT@%m z?S!4l0fWmSH=YVjuX-l6W7*2+HMZ4LS27ga7x)IV&xk&5>bo}a9rL=(EVg3Se-Exq zzB@s=<>^QLRbJ71DnEsV+%7xX;|n|6Ny%ytTrmA-I38vB&Ja)pH!? zex4>W%Q~loCID;4gDU_4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png b/app/src/main/res/drawable-xxxhdpi/ic_wb_iridescent_white_48dp.png deleted file mode 100644 index 638499afb26a8223c80b9a7ad38916a09c58c17a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Lx+145>_WOc@v$LIQk3Tp1V`{!<$m#M?|` zU|^6b3GxeOn8WZtkeA;-_201*Nxp}94lyzv{SzL2AnvcvjGI1L6Brnnay?xfLn>~) zz3b>F9Vo%_P@Lb)kdeKIdB&ap^CG7`37utb8#Lt=bH%IZGkIUCEuLHbF54WNnH+wr z$e59dg+oBWp@9L+_^_Yp-M8CJeBWO)?UR@P7R|(G-`Ahb@FHG}#g^gk>81oW2m2LBXHH+K-V;#+!?;8*1r-<5w@ zJ?N`zTX4Jo!OPPPe-8_Bc>O*7GMzz#BkM0i(ZSEBfBk)aeT}?>-i|-FM8B1J{$f1B z^y@d%uVRL#D*L7d@(v0M_G>SwmuqPFx2@q{B?Hs1+f2WnGjhCG&;4RPyTXF~`Vh%| z5XskI$$2mHx$nK4&$eNDon^lkgV|h&FQMLD!x3RN4@CqiB%o?wBLAxDKB&M#2`u+! zPwds5j23(L5K#k;bS;V*Yn+5e^lDF^$es(J+pNBgFtdL={a|Vu2|DLAJZ1`u%!1QZ21Iw55i~<+#vnVX6XFD+OMLv^2%`bN=l=PtR oK%Vu_zM1#AIbmsJ&3^lKYmeJE*VX=HU|?YIboFyt=akR{08z+ny8r+H diff --git a/app/src/main/res/layout/fragment_addprofile.xml b/app/src/main/res/layout/fragment_addprofile.xml new file mode 100644 index 0000000..381673f --- /dev/null +++ b/app/src/main/res/layout/fragment_addprofile.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_addprofile_item.xml b/app/src/main/res/layout/fragment_addprofile_item.xml new file mode 100644 index 0000000..e7cc317 --- /dev/null +++ b/app/src/main/res/layout/fragment_addprofile_item.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/layout/navigation_header.xml b/app/src/main/res/layout/navigation_header.xml deleted file mode 100644 index 408102e..0000000 --- a/app/src/main/res/layout/navigation_header.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index eb5437d..8d03454 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -22,7 +22,7 @@ Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> -