Autore Topic: Cambio colore bottone premuto  (Letto 1309 volte)

Offline nicola78

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy s2
  • Sistema operativo:
    windows 7
Cambio colore bottone premuto
« il: 21 Febbraio 2014, 01:06:16 CET »
0
Ciao a tutti ,premetto che non sono molto pratico del linguaggio java, è da un mesetto che ho iniziato a imparare qualcosa.
Il problema che vi pongo è il seguente: sul mio device nella schermata in cui chiede il codice pin c'è come è giusto che sia una keypad e quando si preme un bottone della stessa ,lo sfondo del bottone cambia colore.So che questo dipende da un xml dove sono impostati i vari drawable in state_enable,state_pressed etc. Ora il mio intento è quello di impostare il colore bel bottone premuto a mio piacimento e per fare questo ho simulato con eclipse il funzionamento di una keypad ma solo per quanto riguarda la grafica in modo da ottenere un' applicazione da cui estrapolare il codice da aggiungere ai files smali che controllano quella schermata.
Ho impostato un' activity_main.xml in questo modo:
Codice (XML): [Seleziona]
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/LinearLayout1"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/bottone_premuto"
   android:orientation="vertical"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity" >

    <EditText
       android:id="@+id/editText1"
       android:layout_width="286dp"
       android:layout_height="wrap_content"
       android:layout_marginTop="14dp"
       android:ems="10"
       android:inputType="numberPassword" >

        <requestFocus />
    </EditText>
   <LinearLayout android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="54.0dip"
                android:layout_marginLeft="2.0dip"
                android:layout_marginRight="2.0dip">

       <Button
          android:id="@+id/one"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
       <Button
          android:id="@+id/two"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
       <Button
          android:id="@+id/three"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />

    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="54.0dip"
                android:layout_marginLeft="2.0dip"
                android:layout_marginRight="2.0dip">
       
       <Button
          android:id="@+id/four"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
       <Button
          android:id="@+id/five"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
       <Button
          android:id="@+id/six"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="54.0dip"
                android:layout_marginLeft="2.0dip"
                android:layout_marginRight="2.0dip">
       
        <Button
           android:id="@+id/seven"
           android:layout_width="0.0sp"
           android:layout_height="fill_parent"
           android:layout_marginLeft="2.0dip"
           android:layout_marginRight="2.0dip"
           android:layout_weight="1.0"
           android:background="@drawable/bottone_premuto"
           android:textAppearance="?textAppearanceLarge"
           android:textStyle="bold" />
       
       <Button
          android:id="@+id/eight"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
       <Button
          android:id="@+id/nine"
          android:layout_width="0.0sp"
          android:layout_height="fill_parent"
          android:layout_marginLeft="2.0dip"
          android:layout_marginRight="2.0dip"
          android:layout_weight="1.0"
          android:background="@drawable/bottone_premuto"
          android:textAppearance="?textAppearanceLarge"
          android:textStyle="bold" />
       
    </LinearLayout>

</LinearLayout>
poi l' xml che riguarda lo state dei bottoni
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
 <selector
 xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_default_normal_holo_dark" />
    <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/btn_default_normal_disable" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_default_pressed_holo_dark" />
    <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true" android:drawable="@drawable/btn_default_normal_holo_dark" />
    <item android:state_focused="true" android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item android:drawable="@drawable/btn_default_normal_disable" />

</selector>
ed ho impostato il MainActivity in questo modo
Codice (Java): [Seleziona]
package com.provabottone;

import android.os.Bundle;
import android.widget.Button;
import android.app.Activity;
import android.graphics.Color;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity  implements onClickListener {





private Button mOne;
private Button mTwo;
private Button mThree;
private Button mFour;
private Button mFive;
private Button mSix;
private Button mSeven;
private Button mEight;
private Button mNine;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


          mOne = (Button) findViewById(R.id.one);
          mTwo = (Button) findViewById(R.id.two);
          mThree  = (Button) findViewById(R.id.three);
          mFour = (Button) findViewById(R.id.four);
          mFive = (Button) findViewById(R.id.five);
          mSix = (Button) findViewById(R.id.six);
          mSeven = (Button) findViewById(R.id.seven);
          mEight = (Button) findViewById(R.id.eight);
          mNine = (Button) findViewById(R.id.nine);

           mOne.setText("1");
           mTwo.setText("2");
           mThree.setText("3");
           mFour.setText("4");
           mFive.setText("5");
           mSix.setText("6");
           mSeven.setText("7");
           mEight.setText("8");
           mNine.setText("9");
                         
                          mOne.setOnTouchListener(new View.OnTouchListener() {
                               
                                @Override
                                public boolean onTouch(View v, MotionEvent event) {
                                          if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                            mOne.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                            return true;
                                        } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                            mOne.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                            return true;
                                        }
                                        return false;
               
                                }
                          });
                         
                          mOne.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mOne.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mOne.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mTwo.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mTwo.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mTwo.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mThree.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mThree.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mThree.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mFour.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mFour.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mFour.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mFive.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mFive.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mFive.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mSix.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mSix.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mSix.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mSeven.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mSeven.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mSeven.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mEight.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mEight.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mEight.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                          mNine.setOnTouchListener(new View.OnTouchListener() {
                                       
                                        @Override
                                        public boolean onTouch(View v, MotionEvent event) {
                                                  if (event.getAction() == MotionEvent.ACTION_DOWN) {
                                                    mNine.setBackgroundColor(Color.argb(40, 155, 190, 10));
                                                    return true;
                                                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                                                    mNine.setBackgroundResource(R.drawable.btn_default_normal_holo_dark);
                                                    return true;
                                                }
                                                return false;
                       
                                        }
                                  });
                         
       
        }

        @Override
        public void onClick(View v) {
       
       
         
       
        }                                          
}
Provato sull' emulatore ha fuzionato come volevo ottenere, ma una volta estrapolato il codice che mi serviva ed inserito nei miei files smali, i bottoni si cambiavano colore alla loro pressione ,ma dove viene visualizzato il codice pin inserito non veniva visualizzato niente come se non stessi premendo i bottoni.
Spero che qualcuno possa aiutarmi, se dovessero servire altre informazioni fatemelo sapere,intanto grazie.
« Ultima modifica: 21 Febbraio 2014, 12:37:42 CET da JD »

Offline crc_error

  • Utente junior
  • **
  • Post: 85
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Windows 8, Ubuntu 12
Re:Cambio colore bottone premuto
« Risposta #1 il: 21 Febbraio 2014, 19:17:00 CET »
0
Ciao e benvenuto,


non viene visualizzato niente, perchè manca la parte dove dici che il bottone deve mettere un valore nella EditText..


nell'oncreate manca:


Codice (Java): [Seleziona]
       final EditText edtPin = (EditText) findViewById(R.id.editText1);



e sul moveUp di ogni bottone manca la parte dove dici: "metti il valore di questo tasto" nella EditText.


Ciao




Offline nicola78

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy s2
  • Sistema operativo:
    windows 7
Re:Cambio colore bottone premuto
« Risposta #2 il: 21 Febbraio 2014, 19:37:55 CET »
0
Ciao e benvenuto,


non viene visualizzato niente, perchè manca la parte dove dici che il bottone deve mettere un valore nella EditText..


nell'oncreate manca:


Codice (Java): [Seleziona]
       final EditText edtPin = (EditText) findViewById(R.id.editText1);



e sul moveUp di ogni bottone manca la parte dove dici: "metti il valore di questo tasto" nella EditText.


Ciao
Ciao e grazie per aver risposto, tu hai ragione a metà perchè ,se ho capito bene ti riferisci alla parte che viene visualizzata sull'emulatore, quella parte di codice non l'ho inserita in quanto non conosco ancora bene come implementarlo.Ho voluto soffermarmi sull'aspetto grafico dei bottoni per poi estrapolare il codice smali ,che riguarda in questo caso la parte con onTouchListener, da inserire poi nei miei files smali.
Il fatto è che sul mio smarthphone, il codice da me inserito per far cambiare il colore ai bottoni funziona ma sembra che non fa funzionare l'inserimento del codice pin.
Grazie ancora

Offline nicola78

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy s2
  • Sistema operativo:
    windows 7
Re:Cambio colore bottone premuto
« Risposta #3 il: 23 Febbraio 2014, 17:43:01 CET »
0
Sono riuscito ad estrapolare il file smali che controlla la schermata di inserimento pin del mio smarthphone ed a convertirlo in java
Codice (Java): [Seleziona]
package com.android.internal.policy.impl;

import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.Uri;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings.System;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.android.internal.policy.impl.sec.MultiSimUtils;
import com.android.internal.policy.impl.sec.SamsungLockScreenProperties;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.ITelephony.Stub;
import com.android.internal.telephony.ITelephonyExt;
import com.android.internal.telephony.ITelephonyExt.Stub;
import com.android.internal.telephony.IccCard.State;
import com.android.internal.widget.LockPatternUtils;

public class SimUnlockScreen extends LinearLayout
  implements View.OnClickListener, KeyguardScreen, KeyguardUpdateMonitor.AirplaneModeChangeCallback
{
  private static final boolean DEBUG = true;
  private static final char[] DIGITS = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 };
  private static final int DIGIT_PRESS_WAKE_MILLIS = 5000;
  private static final String TAG = "SimUnlockScreen";
  private View mBackSpaceButton;
  private final KeyguardScreenCallback mCallback;
  private int mCreationOrientation;
  private Button mEmergencyCallButton;
  private int mEnteredDigits = 0;
  private final int[] mEnteredPin = { 0, 0, 0, 0, 0, 0, 0, 0 };
  private TextView mHeaderText;
  private int mKeyboardHidden;
  private KeyguardStatusViewManager mKeyguardStatusViewManager;
  private String mLastNumber;
  private LockPatternUtils mLockPatternUtils;
  private TextView mLockinfoText;
  private TextView mOkButton;
  private TextView mPinText;
  private ProgressDialog mSimUnlockProgressDialog = null;
  private final KeyguardUpdateMonitor mUpdateMonitor;
  private int num_of_retry = 0;

  public SimUnlockScreen(Context paramContext, Configuration paramConfiguration, KeyguardUpdateMonitor paramKeyguardUpdateMonitor, KeyguardScreenCallback paramKeyguardScreenCallback, LockPatternUtils paramLockPatternUtils)
  {
    super(paramContext);
    this.mUpdateMonitor = paramKeyguardUpdateMonitor;
    this.mCallback = paramKeyguardScreenCallback;
    this.mCreationOrientation = paramConfiguration.orientation;
    this.mKeyboardHidden = paramConfiguration.hardKeyboardHidden;
    this.mLockPatternUtils = paramLockPatternUtils;
    LayoutInflater localLayoutInflater = LayoutInflater.from(paramContext);
    if (this.mKeyboardHidden == 1)
    {
      localLayoutInflater.inflate(17367168, this, true);
      this.num_of_retry = getSimLockInfoResult();
      Log.i("SimUnlockScreen", "SimUnlockScreen: num_of_retry is " + this.num_of_retry);
      this.mHeaderText = ((TextView)findViewById(16909170));
      this.mLockinfoText = ((TextView)findViewById(16909171));
      this.mPinText = ((TextView)findViewById(16909173));
      this.mBackSpaceButton = findViewById(16909174);
      this.mBackSpaceButton.setOnClickListener(this);
      this.mBackSpaceButton.setContentDescription(paramContext.getString(17040575));
      this.mOkButton = ((TextView)findViewById(16909125));
      this.mUpdateMonitor.registerAirplaneCallbacks(this);
      TextView localTextView = this.mHeaderText;
      localTextView.setText(17040335);
      if (Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView.setTextColor(Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "text_color", -1));
      this.mPinText.setFocusable(false);
      this.mOkButton.setOnClickListener(this);
      this.mKeyguardStatusViewManager = new KeyguardStatusViewManager(this, paramKeyguardUpdateMonitor, paramLockPatternUtils, paramKeyguardScreenCallback, false);
      if (SamsungLockScreenProperties.isDirectCallToEcc())
      {
        this.mEmergencyCallButton = ((Button)findViewById(16909119));
        this.mLockPatternUtils.updateEmergencyCallButtonState(this.mEmergencyCallButton);
        this.mEmergencyCallButton.setOnClickListener(this);
        this.mEmergencyCallButton.setText(17040356);
      }
      setFocusableInTouchMode(true);
      setLockInfoText();
      return;
    }
    if ((!SamsungLockScreenProperties.isTabletDevice()) && (this.mCreationOrientation == 2))
      localLayoutInflater.inflate(17367169, this, true);
    while (true)
    {
      new TouchInput(null);
      break;
      localLayoutInflater.inflate(17367170, this, true);
    }
  }

  private void checkPin()
  {
    // Byte code:
    //   0: aload_0
    //   1: getfield 71 com/android/internal/policy/impl/SimUnlockScreen:mEnteredDigits I
    //   4: iconst_4
    //   5: if_icmpge +132 -> 137
    //   8: aload_0
    //   9: getfield 142        com/android/internal/policy/impl/SimUnlockScreen:mHeaderText    Landroid/widget/TextView;
    //   12: astore_1
    //   13: aload_1
    //   14: ldc_w 275
    //   17: invokevirtual 180  android/widget/TextView:setText (I)V
    //   20: aload_0
    //   21: getfield 142       com/android/internal/policy/impl/SimUnlockScreen:mHeaderText    Landroid/widget/TextView;
    //   24: invokevirtual 184  android/widget/TextView:getContext      ()Landroid/content/Context;
    //   27: invokevirtual 188  android/content/Context:getContentResolver      ()Landroid/content/ContentResolver;
    //   30: ldc 190
    //   32: iconst_1
    //   33: invokestatic 196   android/provider/Settings$System:getInt (Landroid/content/ContentResolver;Ljava/lang/String;I)I
    //   36: ifeq +23 -> 59
    //   39: aload_1
    //   40: aload_0
    //   41: getfield 142       com/android/internal/policy/impl/SimUnlockScreen:mHeaderText    Landroid/widget/TextView;
    //   44: invokevirtual 184  android/widget/TextView:getContext      ()Landroid/content/Context;
    //   47: invokevirtual 188  android/content/Context:getContentResolver      ()Landroid/content/ContentResolver;
    //   50: ldc 198
    //   52: iconst_m1
    //   53: invokestatic 196   android/provider/Settings$System:getInt (Landroid/content/ContentResolver;Ljava/lang/String;I)I
    //   56: invokevirtual 201  android/widget/TextView:setTextColor    (I)V
    //   59: aload_0
    //   60: getfield 142       com/android/internal/policy/impl/SimUnlockScreen:mHeaderText    Landroid/widget/TextView;
    //   63: iconst_1
    //   64: invokevirtual 278  android/widget/TextView:setSelected     (Z)V
    //   67: aload_0
    //   68: invokevirtual 236  com/android/internal/policy/impl/SimUnlockScreen:setLockInfoText        ()V
    //   71: aload_0
    //   72: getfield 148       com/android/internal/policy/impl/SimUnlockScreen:mPinText       Landroid/widget/TextView;
    //   75: astore_2
    //   76: aload_2
    //   77: ldc_w 280
    //   80: invokevirtual 282  android/widget/TextView:setText (Ljava/lang/CharSequence;)V
    //   83: aload_0
    //   84: getfield 148       com/android/internal/policy/impl/SimUnlockScreen:mPinText       Landroid/widget/TextView;
    //   87: invokevirtual 184  android/widget/TextView:getContext      ()Landroid/content/Context;
    //   90: invokevirtual 188  android/content/Context:getContentResolver      ()Landroid/content/ContentResolver;
    //   93: ldc 190
    //   95: iconst_1
    //   96: invokestatic 196   android/provider/Settings$System:getInt (Landroid/content/ContentResolver;Ljava/lang/String;I)I
    //   99: ifeq +23 -> 122
    //   102: aload_2
    //   103: aload_0
    //   104: getfield 148      com/android/internal/policy/impl/SimUnlockScreen:mPinText       Landroid/widget/TextView;
    //   107: invokevirtual 184 android/widget/TextView:getContext      ()Landroid/content/Context;
    //   110: invokevirtual 188 android/content/Context:getContentResolver      ()Landroid/content/ContentResolver;
    //   113: ldc 198
    //   115: iconst_m1
    //   116: invokestatic 196  android/provider/Settings$System:getInt (Landroid/content/ContentResolver;Ljava/lang/String;I)I
    //   119: invokevirtual 201 android/widget/TextView:setTextColor    (I)V
    //   122: aload_0
    //   123: iconst_0
    //   124: putfield 71       com/android/internal/policy/impl/SimUnlockScreen:mEnteredDigits I
    //   127: aload_0
    //   128: getfield 79       com/android/internal/policy/impl/SimUnlockScreen:mCallback      Lcom/android/internal/policy/impl/KeyguardScreenCallback;
    //   131: invokeinterface 287 1 0
    //   136: return
    //   137: aload_0
    //   138: invokespecial 291 com/android/internal/policy/impl/SimUnlockScreen:getSimUnlockProgressDialog     ()Landroid/app/Dialog;
    //   141: invokevirtual 296 android/app/Dialog:show ()V
    //   144: aload_0
    //   145: getfield 79       com/android/internal/policy/impl/SimUnlockScreen:mCallback      Lcom/android/internal/policy/impl/KeyguardScreenCallback;
    //   148: ldc_w 297
    //   151: invokeinterface 299 2 0
    //   156: new 301   com/android/internal/policy/impl/SimUnlockScreen$1
    //   159: dup
    //   160: aload_0
    //   161: aload_0
    //   162: getfield 148      com/android/internal/policy/impl/SimUnlockScreen:mPinText       Landroid/widget/TextView;
    //   165: invokevirtual 305 android/widget/TextView:getText ()Ljava/lang/CharSequence;
    //   168: invokevirtual 308 java/lang/Object:toString       ()Ljava/lang/String;
    //   171: invokespecial 311 com/android/internal/policy/impl/SimUnlockScreen$1:<init>       (Lcom/android/internal/policy/impl/SimUnlockScreen;Ljava/lang/String;)V
    //   174: invokevirtual 316 java/lang/Thread:start  ()V
    //   177: return
  }

  private int getSimLockInfoResult()
  {
    int i = 0;
    try
    {
      i = ITelephonyExt.Stub.asInterface(ServiceManager.checkService("phoneext")).getSimPinRetry();
      if ((MultiSimUtils.isMultiSIMDevice()) && (MultiSimUtils.getCurrentPinLockSlot() > 0))
      {
        int j = ITelephonyExt.Stub.asInterface(ServiceManager.checkService("phoneext2")).getSimPinRetry();
        i = j;
      }
      label48: Log.i("SimUnlockScreen", "getSimLockInfoResult(): num_of_retry is " + i);
      return i;
    }
    catch (Exception localException)
    {
      break label48;
    }
  }

  private Dialog getSimUnlockProgressDialog()
  {
    if (this.mSimUnlockProgressDialog == null)
    {
      this.mSimUnlockProgressDialog = new ProgressDialog(this.mContext);
      this.mSimUnlockProgressDialog.setMessage(this.mContext.getString(17040395));
      this.mSimUnlockProgressDialog.setIndeterminate(true);
      this.mSimUnlockProgressDialog.setCancelable(false);
      this.mSimUnlockProgressDialog.getWindow().setType(2009);
    }
    return this.mSimUnlockProgressDialog;
  }

  private void reportDigit(int paramInt)
  {
    if (this.mEnteredDigits == 0)
    {
      TextView localTextView = this.mPinText;
      localTextView.setText("");
      if (Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView.setTextColor(Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "text_color", -1));
    }
    if (this.mEnteredDigits == 8)
      return;
    this.mPinText.append(Integer.toString(paramInt));
    int[] arrayOfInt = this.mEnteredPin;
    int i = this.mEnteredDigits;
    this.mEnteredDigits = (i + 1);
    arrayOfInt[i] = paramInt;
  }

  public void cleanUp()
  {
    if (this.mSimUnlockProgressDialog != null)
    {
      this.mSimUnlockProgressDialog.dismiss();
      this.mSimUnlockProgressDialog = null;
    }
    this.mUpdateMonitor.removeCallback(this);
  }

  public boolean needsInput()
  {
    return true;
  }

  public void onAirplaneModeChanged(boolean paramBoolean)
  {
    if (paramBoolean)
    {
      Log.d("SimUnlockScreen", "onAirplaneModeChanged");
      this.mUpdateMonitor.reportSimUnlocked(IccCard.State.PIN_REQUIRED);
      this.mCallback.goToUnlockScreen();
    }
  }

  protected void onAttachedToWindow()
  {
    super.onAttachedToWindow();
    updateConfiguration();
  }

  public void onClick(View paramView)
  {
    if (paramView == this.mBackSpaceButton)
    {
      Editable localEditable = this.mPinText.getEditableText();
      int i = localEditable.length();
      if (i > 0)
      {
        localEditable.delete(i - 1, i);
        this.mEnteredDigits = (-1 + this.mEnteredDigits);
      }
      this.mCallback.pokeWakelock();
    }
    do
    {
      return;
      if (paramView == this.mOkButton)
      {
        this.num_of_retry = getSimLockInfoResult();
        Log.i("SimUnlockScreen", "onClick(): num_of_retry is " + this.num_of_retry);
        checkPin();
        return;
      }
    }
    while ((paramView != this.mEmergencyCallButton) || (!SamsungLockScreenProperties.isDirectCallToEcc()));
    this.mCallback.pokeWakelock();
    if (TelephonyManager.getDefault().getCallState() == 2)
      this.mLockPatternUtils.resumeCall();
    while (true)
    {
      TextView localTextView2 = this.mPinText;
      localTextView2.setText("");
      if (Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView2.setTextColor(Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "text_color", -1));
      this.mEnteredDigits = 0;
      return;
      this.mLastNumber = this.mPinText.getText().toString();
      if (PhoneNumberUtils.isEmergencyNumber(this.mLastNumber))
      {
        Intent localIntent = new Intent("android.intent.action.CALL_EMERGENCY");
        localIntent.setData(Uri.fromParts("tel", this.mLastNumber, null));
        localIntent.setFlags(268435456);
        TextView localTextView1 = this.mPinText;
        localTextView1.setText("");
        if (Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
          localTextView1.setTextColor(Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "text_color", -1));
        this.mEnteredDigits = 0;
        this.mContext.startActivity(localIntent);
      }
      else
      {
        this.mCallback.takeEmergencyCallAction();
      }
    }
  }

  protected void onConfigurationChanged(Configuration paramConfiguration)
  {
    super.onConfigurationChanged(paramConfiguration);
    updateConfiguration();
  }

  public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)
  {
    if (paramInt == 4)
      this.mCallback.goToLockScreen();
    do
    {
      return true;
      int i = paramKeyEvent.getMatch(DIGITS);
      if (i != 0)
      {
        reportDigit(i - 48);
        return true;
      }
      if (paramInt != 67)
        break;
    }
    while (this.mEnteredDigits <= 0);
    this.mPinText.onKeyDown(paramInt, paramKeyEvent);
    this.mEnteredDigits = (-1 + this.mEnteredDigits);
    return true;
    if (paramInt == 66)
    {
      checkPin();
      return true;
    }
    return false;
  }

  public void onPause()
  {
    this.mKeyguardStatusViewManager.onPause();
  }

  public void onResume()
  {
    TextView localTextView1 = this.mHeaderText;
    localTextView1.setText(17040335);
    if (Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
      localTextView1.setTextColor(Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "text_color", -1));
    if ((MultiSimUtils.isMultiSIMDevice()) && (MultiSimUtils.getCurrentPinLockSlot() > -1))
    {
      String str1 = 1 + MultiSimUtils.getCurrentPinLockSlot() + "";
      String str2 = "" + "SIM" + str1 + "  ";
      String str3 = str2 + this.mContext.getString(17040335);
      TextView localTextView3 = this.mHeaderText;
      localTextView3.setText(str3);
      if (Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView3.setTextColor(Settings.System.getInt(this.mHeaderText.getContext().getContentResolver(), "text_color", -1));
    }
    TextView localTextView2 = this.mPinText;
    localTextView2.setText("");
    if (Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
      localTextView2.setTextColor(Settings.System.getInt(this.mPinText.getContext().getContentResolver(), "text_color", -1));
    this.mEnteredDigits = 0;
    setLockInfoText();
    this.mKeyguardStatusViewManager.onResume();
  }

  public void setLockInfoText()
  {
    if (this.num_of_retry == 1)
    {
      TextView localTextView2 = this.mLockinfoText;
      Context localContext2 = getContext();
      Object[] arrayOfObject2 = new Object[1];
      arrayOfObject2[0] = Integer.valueOf(this.num_of_retry);
      localTextView2.setText(localContext2.getString(17041058, arrayOfObject2));
      if (Settings.System.getInt(localTextView2.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView2.setTextColor(Settings.System.getInt(localTextView2.getContext().getContentResolver(), "text_color", -1));
      return;
    }
    TextView localTextView1 = this.mLockinfoText;
    Context localContext1 = getContext();
    Object[] arrayOfObject1 = new Object[1];
    arrayOfObject1[0] = Integer.valueOf(this.num_of_retry);
    localTextView1.setText(localContext1.getString(17041059, arrayOfObject1));
    if (Settings.System.getInt(localTextView1.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
      localTextView1.setTextColor(Settings.System.getInt(localTextView1.getContext().getContentResolver(), "text_color", -1));
  }

  void updateConfiguration()
  {
    Configuration localConfiguration = getResources().getConfiguration();
    if (localConfiguration.orientation != this.mCreationOrientation)
      this.mCallback.recreateMe(localConfiguration);
    while (localConfiguration.hardKeyboardHidden == this.mKeyboardHidden)
      return;
    this.mKeyboardHidden = localConfiguration.hardKeyboardHidden;
  }

  private abstract class CheckSimPin extends Thread
  {
    private final String mPin;

    protected CheckSimPin(String arg2)
    {
      Object localObject;
      this.mPin = localObject;
    }

    abstract void onSimLockChangedResponse(boolean paramBoolean);

    public void run()
    {
      try
      {
        if ((MultiSimUtils.isMultiSIMDevice()) && (MultiSimUtils.getCurrentPinLockSlot() > 0))
        {
          final boolean bool2 = ITelephony.Stub.asInterface(ServiceManager.checkService("phone2")).supplyPin(this.mPin);
          SimUnlockScreen.this.post(new Runnable()
          {
            public void run()
            {
              SimUnlockScreen.CheckSimPin.this.onSimLockChangedResponse(bool2);
            }
          });
          return;
        }
        final boolean bool1 = ITelephony.Stub.asInterface(ServiceManager.checkService("phone")).supplyPin(this.mPin);
        SimUnlockScreen.this.post(new Runnable()
        {
          public void run()
          {
            SimUnlockScreen.CheckSimPin.this.onSimLockChangedResponse(bool1);
          }
        });
        return;
      }
      catch (RemoteException localRemoteException)
      {
        SimUnlockScreen.this.post(new Runnable()
        {
          public void run()
          {
            SimUnlockScreen.CheckSimPin.this.onSimLockChangedResponse(false);
          }
        });
      }
    }
  }

  private class TouchInput
    implements View.OnClickListener
  {
    private TextView mCancelButton = (TextView)SimUnlockScreen.this.findViewById(16908953);
    private TextView mEight = (TextView)SimUnlockScreen.this.findViewById(16909389);
    private TextView mFive = (TextView)SimUnlockScreen.this.findViewById(16909386);
    private TextView mFour = (TextView)SimUnlockScreen.this.findViewById(16909385);
    private TextView mNine = (TextView)SimUnlockScreen.this.findViewById(16909390);
    private TextView mOne = (TextView)SimUnlockScreen.this.findViewById(16909382);
    private TextView mSeven = (TextView)SimUnlockScreen.this.findViewById(16909388);
    private TextView mSix = (TextView)SimUnlockScreen.this.findViewById(16909387);
    private TextView mThree = (TextView)SimUnlockScreen.this.findViewById(16909384);
    private TextView mTwo = (TextView)SimUnlockScreen.this.findViewById(16909383);
    private TextView mZero = (TextView)SimUnlockScreen.this.findViewById(16909391);

    private TouchInput()
    {
      TextView localTextView1 = this.mZero;
      localTextView1.setText("0");
      if (Settings.System.getInt(localTextView1.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView1.setTextColor(Settings.System.getInt(localTextView1.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView2 = this.mOne;
      localTextView2.setText("1");
      if (Settings.System.getInt(localTextView2.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView2.setTextColor(Settings.System.getInt(localTextView2.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView3 = this.mTwo;
      localTextView3.setText("2");
      if (Settings.System.getInt(localTextView3.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView3.setTextColor(Settings.System.getInt(localTextView3.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView4 = this.mThree;
      localTextView4.setText("3");
      if (Settings.System.getInt(localTextView4.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView4.setTextColor(Settings.System.getInt(localTextView4.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView5 = this.mFour;
      localTextView5.setText("4");
      if (Settings.System.getInt(localTextView5.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView5.setTextColor(Settings.System.getInt(localTextView5.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView6 = this.mFive;
      localTextView6.setText("5");
      if (Settings.System.getInt(localTextView6.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView6.setTextColor(Settings.System.getInt(localTextView6.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView7 = this.mSix;
      localTextView7.setText("6");
      if (Settings.System.getInt(localTextView7.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView7.setTextColor(Settings.System.getInt(localTextView7.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView8 = this.mSeven;
      localTextView8.setText("7");
      if (Settings.System.getInt(localTextView8.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView8.setTextColor(Settings.System.getInt(localTextView8.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView9 = this.mEight;
      localTextView9.setText("8");
      if (Settings.System.getInt(localTextView9.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView9.setTextColor(Settings.System.getInt(localTextView9.getContext().getContentResolver(), "text_color", -1));
      TextView localTextView10 = this.mNine;
      localTextView10.setText("9");
      if (Settings.System.getInt(localTextView10.getContext().getContentResolver(), "checkbox_preference", 1) != 0)
        localTextView10.setTextColor(Settings.System.getInt(localTextView10.getContext().getContentResolver(), "text_color", -1));
      this.mZero.setOnClickListener(this);
      this.mOne.setOnClickListener(this);
      this.mTwo.setOnClickListener(this);
      this.mThree.setOnClickListener(this);
      this.mFour.setOnClickListener(this);
      this.mFive.setOnClickListener(this);
      this.mSix.setOnClickListener(this);
      this.mSeven.setOnClickListener(this);
      this.mEight.setOnClickListener(this);
      this.mNine.setOnClickListener(this);
      this.mCancelButton.setOnClickListener(this);
    }

    private int checkDigit(View paramView)
    {
      int i = -1;
      if (paramView == this.mZero)
        i = 0;
      do
      {
        return i;
        if (paramView == this.mOne)
          return 1;
        if (paramView == this.mTwo)
          return 2;
        if (paramView == this.mThree)
          return 3;
        if (paramView == this.mFour)
          return 4;
        if (paramView == this.mFive)
          return 5;
        if (paramView == this.mSix)
          return 6;
        if (paramView == this.mSeven)
          return 7;
        if (paramView == this.mEight)
          return 8;
      }
      while (paramView != this.mNine);
      return 9;
    }

    public void onClick(View paramView)
    {
      if (paramView == this.mCancelButton)
      {
        SimUnlockScreen.this.mPinText.setText("");
        SimUnlockScreen.access$1002(SimUnlockScreen.this, 0);
        SimUnlockScreen.this.mCallback.goToLockScreen();
      }
      int i;
      do
      {
        return;
        i = checkDigit(paramView);
      }
      while (i < 0);
      SimUnlockScreen.this.mCallback.pokeWakelock(5000);
      SimUnlockScreen.this.reportDigit(i);
    }
  }
}
ora potete aiutarmi a trovare il posto giusto dove poter inserire il codice per far cambiare il colore del bottone premuto?
Grazie

Offline FrancescoAndroid

  • Utente junior
  • **
  • Post: 69
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    GiMiSiS Interactive
  • Sistema operativo:
    Android 2.3.3
Re:Cambio colore bottone premuto
« Risposta #4 il: 10 Marzo 2014, 14:58:34 CET »
0
devi gestire l'onclicklistener del button


Offline nicola78

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy s2
  • Sistema operativo:
    windows 7
Re:Cambio colore bottone premuto
« Risposta #5 il: 13 Aprile 2014, 05:55:36 CEST »
0
devi gestire l'onclicklistener del button
quindi dovrei inserire il mio codice all'interno del .method public onClick(Landroid/view/View;)V del mio file?
grazie ancora