Parcourir la source

Add watcher management in AddPartFragment

fix bug on drawer action change
tags/release-v1.0
Schoumi il y a 3 ans
Parent
révision
0b2cdd3c30
28 fichiers modifiés avec 59 ajouts et 23 suppressions
  1. +2
    -1
      app/src/main/java/fr/mobdev/lpcprog/activity/MainActivity.java
  2. +12
    -11
      app/src/main/java/fr/mobdev/lpcprog/fragment/AddPartFragment.java
  3. +13
    -3
      app/src/main/java/fr/mobdev/lpcprog/fragment/Watcher.java
  4. BIN
      app/src/main/res/drawable-hdpi/apptheme_textfield_activated_holo_light.9.png
  5. BIN
      app/src/main/res/drawable-hdpi/apptheme_textfield_default_holo_light.9.png
  6. BIN
      app/src/main/res/drawable-hdpi/apptheme_textfield_disabled_focused_holo_light.9.png
  7. BIN
      app/src/main/res/drawable-hdpi/apptheme_textfield_disabled_holo_light.9.png
  8. BIN
      app/src/main/res/drawable-hdpi/apptheme_textfield_focused_holo_light.9.png
  9. BIN
      app/src/main/res/drawable-mdpi/apptheme_textfield_activated_holo_light.9.png
  10. BIN
      app/src/main/res/drawable-mdpi/apptheme_textfield_default_holo_light.9.png
  11. BIN
      app/src/main/res/drawable-mdpi/apptheme_textfield_disabled_focused_holo_light.9.png
  12. BIN
      app/src/main/res/drawable-mdpi/apptheme_textfield_disabled_holo_light.9.png
  13. BIN
      app/src/main/res/drawable-mdpi/apptheme_textfield_focused_holo_light.9.png
  14. BIN
      app/src/main/res/drawable-xhdpi/apptheme_textfield_activated_holo_light.9.png
  15. BIN
      app/src/main/res/drawable-xhdpi/apptheme_textfield_default_holo_light.9.png
  16. BIN
      app/src/main/res/drawable-xhdpi/apptheme_textfield_disabled_focused_holo_light.9.png
  17. BIN
      app/src/main/res/drawable-xhdpi/apptheme_textfield_disabled_holo_light.9.png
  18. BIN
      app/src/main/res/drawable-xhdpi/apptheme_textfield_focused_holo_light.9.png
  19. BIN
      app/src/main/res/drawable-xxhdpi/apptheme_textfield_activated_holo_light.9.png
  20. BIN
      app/src/main/res/drawable-xxhdpi/apptheme_textfield_default_holo_light.9.png
  21. BIN
      app/src/main/res/drawable-xxhdpi/apptheme_textfield_disabled_focused_holo_light.9.png
  22. BIN
      app/src/main/res/drawable-xxhdpi/apptheme_textfield_disabled_holo_light.9.png
  23. BIN
      app/src/main/res/drawable-xxhdpi/apptheme_textfield_focused_holo_light.9.png
  24. +25
    -0
      app/src/main/res/drawable/apptheme_edit_text_holo_light.xml
  25. +1
    -1
      app/src/main/res/values/color.xml
  26. +4
    -0
      app/src/main/res/values/colors_apptheme.xml
  27. +1
    -6
      app/src/main/res/values/strings.xml
  28. +1
    -1
      build.gradle

+ 2
- 1
app/src/main/java/fr/mobdev/lpcprog/activity/MainActivity.java Voir le fichier

@@ -175,7 +175,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.O
int id = item.getItemId();
Fragment frag = null;
final FragmentManager manager = getSupportFragmentManager();
final FragmentTransaction transaction = manager.beginTransaction();
FragmentTransaction transaction = manager.beginTransaction();
final Fragment old = manager.findFragmentById(R.id.fragment_container);
if(id == R.id.nav_devices) {
if(!(old instanceof USBListFragment)) {
@@ -200,6 +200,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.O
@Override
public void onEditPress(Long part_id) {
Fragment fragment = AddPartFragment.newInstance(part_id);
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.fragment_container, fragment);
transaction.addToBackStack(null);
transaction.commit();

+ 12
- 11
app/src/main/java/fr/mobdev/lpcprog/fragment/AddPartFragment.java Voir le fichier

@@ -77,45 +77,45 @@ public class AddPartFragment extends Fragment {
final View v = inflater.inflate(R.layout.add_part, container, false);
EditText t = (EditText) v.findViewById(R.id.edit_part_id);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%08x",part.part_id).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%08x",part.part_id).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_flash_base_addr);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%08x",part.flash_base_addr).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%08x",part.flash_base_addr).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_flash_size);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%04x",part.flash_size).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%04x",part.flash_size).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_reset_vector_offset);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%02x",part.reset_vector_offset).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%02x",part.reset_vector_offset).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_ram_base_addr);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%08x",part.ram_base_addr).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%08x",part.ram_base_addr).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_ram_size);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%04x",part.ram_size).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%04x",part.ram_size).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_ram_buf_offset);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%03x",part.ram_buffer_offset).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%03x",part.ram_buffer_offset).toUpperCase() : "0x");
t = (EditText) v.findViewById(R.id.edit_ram_buf_size);
watchers.add(new HexaWatcher(t,this));
t.setText(part != null ? "0x"+String.format("%03x",part.ram_buffer_size).toUpperCase() : "0x");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? "0x"+String.format("%03x",part.ram_buffer_size).toUpperCase() : "0x");

t = (EditText) v.findViewById(R.id.edit_part_name);
watchers.add(new EmptyWatcher(t,this));
t.setText(part != null ? part.part_name : "");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? part.part_name : "");
t = (EditText) v.findViewById(R.id.edit_flash_nb_sector);
watchers.add(new EmptyWatcher(t,this));
t.setText(part != null ? String.valueOf(part.flash_nb_sectors) : "");
t.addTextChangedListener(watchers.get(watchers.size()-1));
t.setText(part != null ? String.valueOf(part.flash_nb_sectors) : "");

Spinner s = (Spinner) v.findViewById(R.id.spinner_uuencode);
if(part != null)
@@ -195,7 +195,8 @@ public class AddPartFragment extends Fragment {
if (v == null)
v = getView();
boolean isValid = true;
assert v != null;
if(v == null)
return;
EditText t = (EditText) v.findViewById(R.id.edit_part_id);
String hexa = t.getText().toString();
if(!hexa.matches("0x[0-9A-F]*"))

+ 13
- 3
app/src/main/java/fr/mobdev/lpcprog/fragment/Watcher.java Voir le fichier

@@ -18,18 +18,22 @@

package fr.mobdev.lpcprog.fragment;

import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;

import fr.mobdev.lpcprog.R;

class HexaWatcher implements TextWatcher {

private EditText v;
private Drawable orig;
private AddPartFragment fragment;
HexaWatcher(EditText view,AddPartFragment fragment) {
v = view;
this.fragment = fragment;
orig = v.getBackground();
}

@Override
@@ -46,9 +50,9 @@ class HexaWatcher implements TextWatcher {
public void afterTextChanged(Editable editable) {
String hexa = editable.toString();
if(!hexa.matches("0x[0-9A-F]+"))
v.getBackground().setColorFilter(0xFFFF0000, PorterDuff.Mode.SRC);
v.setBackgroundResource(R.drawable.apptheme_edit_text_holo_light);
else
v.getBackground().clearColorFilter();
v.setBackgroundDrawable(orig);
fragment.modifyBt(null);
}
}
@@ -57,9 +61,11 @@ class EmptyWatcher implements TextWatcher {

private EditText v;
private AddPartFragment fragment;
private Drawable orig;
EmptyWatcher(EditText view,AddPartFragment fragment) {
v = view;
this.fragment = fragment;
orig = v.getBackground();
}

@Override
@@ -75,6 +81,10 @@ class EmptyWatcher implements TextWatcher {
@Override
public void afterTextChanged(Editable editable) {
String data = editable.toString();
if(data.isEmpty())
v.setBackgroundResource(R.drawable.apptheme_edit_text_holo_light);
else
v.setBackgroundDrawable(orig);
fragment.modifyBt(null);
}
}

BIN
app/src/main/res/drawable-hdpi/apptheme_textfield_activated_holo_light.9.png Voir le fichier

Before After
Width: 41  |  Height: 50  |  Size: 236B

BIN
app/src/main/res/drawable-hdpi/apptheme_textfield_default_holo_light.9.png Voir le fichier

Before After
Width: 41  |  Height: 50  |  Size: 261B

BIN
app/src/main/res/drawable-hdpi/apptheme_textfield_disabled_focused_holo_light.9.png Voir le fichier

Before After
Width: 41  |  Height: 50  |  Size: 346B

BIN
app/src/main/res/drawable-hdpi/apptheme_textfield_disabled_holo_light.9.png Voir le fichier

Before After
Width: 41  |  Height: 50  |  Size: 261B

BIN
app/src/main/res/drawable-hdpi/apptheme_textfield_focused_holo_light.9.png Voir le fichier

Before After
Width: 41  |  Height: 50  |  Size: 311B

BIN
app/src/main/res/drawable-mdpi/apptheme_textfield_activated_holo_light.9.png Voir le fichier

Before After
Width: 28  |  Height: 34  |  Size: 214B

BIN
app/src/main/res/drawable-mdpi/apptheme_textfield_default_holo_light.9.png Voir le fichier

Before After
Width: 28  |  Height: 34  |  Size: 229B

BIN
app/src/main/res/drawable-mdpi/apptheme_textfield_disabled_focused_holo_light.9.png Voir le fichier

Before After
Width: 28  |  Height: 34  |  Size: 274B

BIN
app/src/main/res/drawable-mdpi/apptheme_textfield_disabled_holo_light.9.png Voir le fichier

Before After
Width: 28  |  Height: 34  |  Size: 229B

BIN
app/src/main/res/drawable-mdpi/apptheme_textfield_focused_holo_light.9.png Voir le fichier

Before After
Width: 28  |  Height: 34  |  Size: 250B

BIN
app/src/main/res/drawable-xhdpi/apptheme_textfield_activated_holo_light.9.png Voir le fichier

Before After
Width: 54  |  Height: 66  |  Size: 267B

BIN
app/src/main/res/drawable-xhdpi/apptheme_textfield_default_holo_light.9.png Voir le fichier

Before After
Width: 54  |  Height: 66  |  Size: 252B

BIN
app/src/main/res/drawable-xhdpi/apptheme_textfield_disabled_focused_holo_light.9.png Voir le fichier

Before After
Width: 54  |  Height: 66  |  Size: 317B

BIN
app/src/main/res/drawable-xhdpi/apptheme_textfield_disabled_holo_light.9.png Voir le fichier

Before After
Width: 54  |  Height: 66  |  Size: 252B

BIN
app/src/main/res/drawable-xhdpi/apptheme_textfield_focused_holo_light.9.png Voir le fichier

Before After
Width: 54  |  Height: 66  |  Size: 369B

BIN
app/src/main/res/drawable-xxhdpi/apptheme_textfield_activated_holo_light.9.png Voir le fichier

Before After
Width: 80  |  Height: 98  |  Size: 326B

BIN
app/src/main/res/drawable-xxhdpi/apptheme_textfield_default_holo_light.9.png Voir le fichier

Before After
Width: 80  |  Height: 98  |  Size: 321B

BIN
app/src/main/res/drawable-xxhdpi/apptheme_textfield_disabled_focused_holo_light.9.png Voir le fichier

Before After
Width: 80  |  Height: 98  |  Size: 442B

BIN
app/src/main/res/drawable-xxhdpi/apptheme_textfield_disabled_holo_light.9.png Voir le fichier

Before After
Width: 80  |  Height: 98  |  Size: 320B

BIN
app/src/main/res/drawable-xxhdpi/apptheme_textfield_focused_holo_light.9.png Voir le fichier

Before After
Width: 80  |  Height: 98  |  Size: 445B

+ 25
- 0
app/src/main/res/drawable/apptheme_edit_text_holo_light.xml Voir le fichier

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/apptheme_textfield_default_holo_light" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/apptheme_textfield_disabled_holo_light" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/apptheme_textfield_activated_holo_light" />
<item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/apptheme_textfield_focused_holo_light" />
<item android:state_enabled="true" android:drawable="@drawable/apptheme_textfield_default_holo_light" />
<item android:state_focused="true" android:drawable="@drawable/apptheme_textfield_disabled_focused_holo_light" />
<item android:drawable="@drawable/apptheme_textfield_disabled_holo_light" />
</selector>

+ 1
- 1
app/src/main/res/values/color.xml Voir le fichier

@@ -2,5 +2,5 @@
<resources>
<color name="colorPrimaryDark">#000000</color>
<color name="colorPrimary">#000000</color>
<color name="colorAccent">#FFFFFF</color>
<color name="colorAccent">#000000</color>
</resources>

+ 4
- 0
app/src/main/res/values/colors_apptheme.xml Voir le fichier

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="apptheme_color">#cc0000</color>
</resources>

+ 1
- 6
app/src/main/res/values/strings.xml Voir le fichier

@@ -36,15 +36,10 @@
<item>http://</item>
<item>https://</item>
</array>
<string name="title_activity_main">MainActivity</string>

<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>

<string name="action_settings">Settings</string>

<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="devices_list">Devices List</string>
<string name="parts_management">µC Definitions</string>
<string name="part_name">µC Name</string>
@@ -75,7 +70,7 @@
<string name="read_file">Copy file into Memory</string>
<string name="verify_checksum">Verify Checksum</string>
<string name="write_to_flash">Flash Binary</string>
<string name="end_flash">Flash Suceed</string>
<string name="end_flash">Flash Succeed</string>
<string name="step">Step</string>
<array name="uuencode_array">
<item>Yes</item>

+ 1
- 1
build.gradle Voir le fichier

@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.1'
classpath 'com.android.tools.build:gradle:2.2.2'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files

Chargement…
Annuler
Enregistrer