From 10428d2327dda1d26cfd604bcba6d45c3182f4bb Mon Sep 17 00:00:00 2001 From: baijihui416 <253759872@qq.com> Date: Wed, 8 Jun 2016 15:15:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?#88=20#90=20#94=20#95=20#181=20=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=A8=E9=83=A8=E5=AE=9E=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com1314080901101/AndroidManifest.xml | 24 ++ .../com1314080901101/MainActivity.java | 116 ++++++++++ .../com1314080901101/RecorderAdapter.java | 64 ++++++ .../com1314080901101Activity.java | 13 -- .../com1314080901101/view/AudioManager.java | 140 +++++++++++ .../view/AudioRecorderButton.java | 217 ++++++++++++++++++ .../com1314080901101/view/DialogManager.java | 104 +++++++++ .../com1314080901101/view/MediaManager.java | 75 ++++++ .../res/drawable/com1314080901103_adj.png | Bin 0 -> 1362 bytes .../com1314080901103_button_recorder.xml | 6 + ...om1314080901103_button_recorder_normal.xml | 6 + .../res/drawable/com1314080901103_cancel.png | Bin 0 -> 1858 bytes .../com1314080901103_chatto_bg_focused.9.png | Bin 0 -> 2336 bytes .../com1314080901103_dialog_loading_bg.9.png | Bin 0 -> 267 bytes .../drawable/com1314080901103_play_anim.xml | 6 + .../drawable/com1314080901103_recorder.png | Bin 0 -> 1839 bytes .../main/res/drawable/com1314080901103_v1.png | Bin 0 -> 242 bytes .../main/res/drawable/com1314080901103_v2.png | Bin 0 -> 340 bytes .../main/res/drawable/com1314080901103_v3.png | Bin 0 -> 441 bytes .../main/res/drawable/com1314080901103_v4.png | Bin 0 -> 531 bytes .../main/res/drawable/com1314080901103_v5.png | Bin 0 -> 651 bytes .../main/res/drawable/com1314080901103_v6.png | Bin 0 -> 757 bytes .../main/res/drawable/com1314080901103_v7.png | Bin 0 -> 857 bytes .../res/drawable/com1314080901103_v_anim1.png | Bin 0 -> 454 bytes .../res/drawable/com1314080901103_v_anim2.png | Bin 0 -> 845 bytes .../res/drawable/com1314080901103_v_anim3.png | Bin 0 -> 1341 bytes .../com1314080901103_voice_to_short.png | Bin 0 -> 1749 bytes .../main/res/drawable/com1314080901103_xy.png | Bin 0 -> 6201 bytes .../layout/com1314080901101_activity_main.xml | 42 ++++ .../com1314080901101_dialog_recorder.xml | 38 +++ .../layout/com1314080901101_item_recorder.xml | 36 +++ .../res/values/com1314080901101_colors.xml | 6 + .../res/values/com1314080901101_dimens.xml | 5 + .../res/values/com1314080901101_strings.xml | 10 + .../res/values/com1314080901101_styles.xml | 15 ++ 35 files changed, 910 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/AndroidManifest.xml create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java delete mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/com1314080901101Activity.java create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioManager.java create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java create mode 100644 app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/MediaManager.java create mode 100644 app/src/main/res/drawable/com1314080901103_adj.png create mode 100644 app/src/main/res/drawable/com1314080901103_button_recorder.xml create mode 100644 app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml create mode 100644 app/src/main/res/drawable/com1314080901103_cancel.png create mode 100644 app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png create mode 100644 app/src/main/res/drawable/com1314080901103_dialog_loading_bg.9.png create mode 100644 app/src/main/res/drawable/com1314080901103_play_anim.xml create mode 100644 app/src/main/res/drawable/com1314080901103_recorder.png create mode 100644 app/src/main/res/drawable/com1314080901103_v1.png create mode 100644 app/src/main/res/drawable/com1314080901103_v2.png create mode 100644 app/src/main/res/drawable/com1314080901103_v3.png create mode 100644 app/src/main/res/drawable/com1314080901103_v4.png create mode 100644 app/src/main/res/drawable/com1314080901103_v5.png create mode 100644 app/src/main/res/drawable/com1314080901103_v6.png create mode 100644 app/src/main/res/drawable/com1314080901103_v7.png create mode 100644 app/src/main/res/drawable/com1314080901103_v_anim1.png create mode 100644 app/src/main/res/drawable/com1314080901103_v_anim2.png create mode 100644 app/src/main/res/drawable/com1314080901103_v_anim3.png create mode 100644 app/src/main/res/drawable/com1314080901103_voice_to_short.png create mode 100644 app/src/main/res/drawable/com1314080901103_xy.png create mode 100644 app/src/main/res/layout/com1314080901101_activity_main.xml create mode 100644 app/src/main/res/layout/com1314080901101_dialog_recorder.xml create mode 100644 app/src/main/res/layout/com1314080901101_item_recorder.xml create mode 100644 app/src/main/res/values/com1314080901101_colors.xml create mode 100644 app/src/main/res/values/com1314080901101_dimens.xml create mode 100644 app/src/main/res/values/com1314080901101_strings.xml create mode 100644 app/src/main/res/values/com1314080901101_styles.xml diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/AndroidManifest.xml b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/AndroidManifest.xml new file mode 100644 index 00000000..0dd24a06 --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java new file mode 100644 index 00000000..4b49c0f3 --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java @@ -0,0 +1,116 @@ +package edu.hzuapps.androidworks.homework.com1314080901101; + +import android.app.Activity; +import android.graphics.drawable.AnimationDrawable; +import android.media.MediaPlayer; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.List; + +import edu.hzuapps.androidworks.homework.com1314080901101.view.AudioRecorderButton; +import edu.hzuapps.androidworks.homework.com1314080901101.view.MediaManager; + +public class MainActivity extends Activity { + + private ListView mListView; + private ArrayAdapter mAdapter; + private List mDatas = new ArrayList<>(); + private AudioRecorderButton mAudioRecorderButton; + private View animView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.com1314080901101_activity_main); + + mListView = (ListView) findViewById(R.id.lv); + mAudioRecorderButton = (AudioRecorderButton) findViewById(R.id.recorder_button); + mAudioRecorderButton.setAudioFinishRecorderListener(new AudioRecorderButton.AudioFinishRecorderListener() { + @Override + public void onFinish(float seconds, String filePath) { + Recorder recorder = new Recorder(seconds, filePath); + mDatas.add(recorder); + mAdapter.notifyDataSetChanged();//通知更新的内容 + mListView.setSelection(mDatas.size() - 1);//将lisview设置为最后一个 + } + }); + + mAdapter = new RecorderAdapter(this, mDatas); + mListView.setAdapter(mAdapter); + + //listView的item点击事件 + mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (animView != null) { + animView.setBackgroundResource(R.drawable.com1314080901103_adj); + animView = null; + } + //播放动画 + animView = view.findViewById(R.id.recorder_anim); + animView.setBackgroundResource(R.drawable.com1314080901103_play_anim); + AnimationDrawable anim = (AnimationDrawable) animView.getBackground(); + anim.start(); + //播放音频 + MediaManager.playSound(mDatas.get(position).filePath, new MediaPlayer.OnCompletionListener() { + + @Override + public void onCompletion(MediaPlayer mp) { + animView.setBackgroundResource(R.drawable.com1314080901103_adj); + } + }); + } + }); + } + + @Override + protected void onPause() { + super.onPause(); + MediaManager.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + MediaManager.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + MediaManager.release(); + } + + class Recorder { + float time; + String filePath; + + public Recorder(float time, String filePath) { + super(); + this.time = time; + this.filePath = filePath; + } + + public void setTime(float time) { + this.time = time; + } + + public void setFilePath(String filePath) { + this.filePath = filePath; + } + + public float getTime() { + + return time; + } + + public String getFilePath() { + return filePath; + } + } +} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java new file mode 100644 index 00000000..667f9fff --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java @@ -0,0 +1,64 @@ +package edu.hzuapps.androidworks.homework.com1314080901101; + +import android.content.Context; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import java.util.List; + +import edu.hzuapps.androidworks.homework.com1314080901101.MainActivity.Recorder; + +public class RecorderAdapter extends ArrayAdapter { + private List mDatas; + private Context mContext; + + private int mMinItemWidth; + private int mMaxItemWidth; + private LayoutInflater mInflater; + + public RecorderAdapter(Context context, List datas) { + super(context, -1, datas); + mContext = context; + mDatas = datas; + + //获取屏幕的宽度 + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + DisplayMetrics outMetrics = new DisplayMetrics(); + wm.getDefaultDisplay().getMetrics(outMetrics); + + mMaxItemWidth = (int) (outMetrics.widthPixels * 0.7f); + mMinItemWidth = (int) (outMetrics.widthPixels * 0.15f); + + mInflater = LayoutInflater.from(mContext); + } + + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + if (convertView == null) { + convertView = mInflater.inflate(R.layout.com1314080901101_item_recorder, parent, false); + holder = new ViewHolder(); + holder.seconds = (TextView) convertView.findViewById(R.id.recorder_time); + holder.length = convertView.findViewById(R.id.recorder_length); + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + holder.seconds.setText(Math.round(getItem(position).time) + "\""); + ViewGroup.LayoutParams lp = holder.length.getLayoutParams(); + lp.width = (int) (mMinItemWidth + (mMaxItemWidth / 60f) * getItem(position).time); + + return convertView; + } + + private class ViewHolder { + TextView seconds; //时间 + View length; //长度 + } +} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/com1314080901101Activity.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/com1314080901101Activity.java deleted file mode 100644 index a3a48cb3..00000000 --- a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/com1314080901101Activity.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.hzuapps.androidworks.homeworks.com1314080901101; - -import android.app.Activity; -import android.os.Bundle; - -public class com1314080901101Activity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_com1314080901101); - } -} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioManager.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioManager.java new file mode 100644 index 00000000..c69aac93 --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioManager.java @@ -0,0 +1,140 @@ +package edu.hzuapps.androidworks.homework.com1314080901101.view; + +import android.media.MediaRecorder; + +import java.io.File; +import java.io.IOException; +import java.util.UUID; + +public class AudioManager { + private MediaRecorder mMediaRecorder; + private String mDir; + private String mCurrentFilePath; + private boolean isPrepared; + + private static AudioManager mInstance; + + public static AudioManager getmInstance(String dir) { + if (mInstance == null) { + synchronized (AudioManager.class) { + if (mInstance == null) { + mInstance = new AudioManager(dir); + } + } + } + return mInstance; + } + + public AudioManager(String dir) { + this.mDir = dir; + } + + public AudioStateListener mListener; + + /** + * 回调准备完毕 + */ + public interface AudioStateListener { + void wellPrepared(); + } + + public void setOnAudioStateListener(AudioStateListener listener) { + mListener = listener; + } + + /** + * 准备 + */ + public void prepareAudio() { + + try { + isPrepared = false; + + File dir = new File(mDir); + if (!dir.exists()) { + dir.mkdirs(); + } + String fileName = generateFileName(); + File file = new File(dir, fileName); + + mCurrentFilePath = file.getAbsolutePath(); + mMediaRecorder = new MediaRecorder(); + //设置输出文件 + mMediaRecorder.setOutputFile(file.getAbsolutePath()); + //设置MediaRecorder的音频源为麦克风 + mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); + //设置音频的格式 + mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); + //设置音频的编码为amr + mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); + //准备录音 + mMediaRecorder.prepare(); + //开始录音 + mMediaRecorder.start(); + //准备结束 + isPrepared = true; + if (mListener != null) { + mListener.wellPrepared(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 随机生成文件的名称 + * + * @return + */ + private String generateFileName() { + return UUID.randomUUID().toString() + ".amr"; + } + + /** + * 获得音量等级 + * + * @return + */ + public int getVoiceLevel(int maxLevel) { + if (isPrepared) { + try { + //mMediaRecorder.getMaxAmplitude() 范围:1-32767之间 + return maxLevel * mMediaRecorder.getMaxAmplitude() / 32768 + 1; + } catch (Exception e) { + + } + } + return 1; + } + + /** + * 释放 + */ + public void release() { +// mMediaRecorder.stop(); + mMediaRecorder.release(); + mMediaRecorder = null; + } + + /** + * 取消 + */ + public void cancel() { + release(); + //删除文件 + if (mCurrentFilePath != null) { + File file = new File(mCurrentFilePath); + file.delete(); + mCurrentFilePath = null; + } + } + + /** + * 获取当前文件存储路径 + * + * @return + */ + public String getCurrentFilePath() { + return mCurrentFilePath; + } +} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java new file mode 100644 index 00000000..2b2d2a76 --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java @@ -0,0 +1,217 @@ +package edu.hzuapps.androidworks.homework.com1314080901101.view; + +import android.content.Context; +import android.os.Environment; +import android.os.Handler; +import android.os.Message; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.widget.Button; + +import edu.hzuapps.androidworks.homework.com1314080901101.R; + +public class AudioRecorderButton extends Button implements AudioManager.AudioStateListener { + private static final int DISTANCE_Y_CANCEL = 50; //正常开发情况下,应该使用dp,然后将dp转换为px + private static final int STATE_NORMAL = 1; //默认状态 + private static final int STATE_RECORDING = 2; //正在录音 + private static final int STATE_WANT_TO_CANCEL = 3; //希望取消 + + private static final int MSG_AUDIO_PREPARED = 0X110; + private static final int MSG_VOICE_CHANGED = 0X111; + private static final int MSG_DIALOG_DIMISS = 0X112; + + private int mCurState = STATE_NORMAL; //当前的状态 + //已经开始录音 + private boolean isRecording = false; //是否已经开始录音 + private DialogManager mDialogManger; + private AudioManager mAudioManger; + + private float mTime; + //是否触发longClick方法 + private boolean mReady; + + public AudioRecorderButton(Context context) { + this(context, null); + } + + public AudioRecorderButton(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public AudioRecorderButton(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + mDialogManger = new DialogManager(getContext()); + //TODO 判断SD卡是否存在 + String dir = Environment.getExternalStorageDirectory() + "/zane_recorder_audios"; + mAudioManger = AudioManager.getmInstance(dir); + mAudioManger.setOnAudioStateListener(this); + + this.setOnLongClickListener(new OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + mReady = true; + mAudioManger.prepareAudio(); + return false; + } + }); + } + + private AudioFinishRecorderListener mListener; + + /** + * 录音完成后的回调 + */ + public interface AudioFinishRecorderListener { + void onFinish(float seconds, String filePath); + } + + public void setAudioFinishRecorderListener(AudioFinishRecorderListener listener) { + this.mListener = listener; + } + + /** + * 获取音量大小的Runnable + */ + private Runnable mGetVoiceLevelRunnable = new Runnable() { + @Override + public void run() { + while (isRecording) { + try { + Thread.sleep(100); + mTime += 0.1f; + handler.sendEmptyMessage(MSG_VOICE_CHANGED); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + }; + + private Handler handler = new Handler() { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_AUDIO_PREPARED: + //显示应该在audio end prepared以后 + mDialogManger.showRecordingDialog(); + isRecording = true; + + new Thread(mGetVoiceLevelRunnable).start(); + break; + case MSG_VOICE_CHANGED: + mDialogManger.updateVoiceLevel(mAudioManger.getVoiceLevel(7)); + break; + case MSG_DIALOG_DIMISS: + mDialogManger.dimissDialog(); + break; + } + } + }; + + @Override + public void wellPrepared() { + handler.sendEmptyMessage(MSG_AUDIO_PREPARED); + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + int action = event.getAction(); + int x = (int) event.getX(); + int y = (int) event.getY(); + + switch (action) { + case MotionEvent.ACTION_DOWN: + changeState(STATE_RECORDING); + break; + case MotionEvent.ACTION_MOVE: + if (isRecording) { + //根据x,y的坐标,判断是否取消 + if (wantToCancel(x, y)) { + changeState(STATE_WANT_TO_CANCEL); + } else { + changeState(STATE_RECORDING); + } + } + break; + case MotionEvent.ACTION_UP: + if (!mReady) { + reset(); + return super.onTouchEvent(event); + } + + if (!isRecording || mTime < 0.6f) { + mDialogManger.tooShort(); + mAudioManger.cancel(); + handler.sendEmptyMessageDelayed(MSG_DIALOG_DIMISS, 1300); + } else if (mCurState == STATE_RECORDING) { //正常录制的时候结束 + mDialogManger.dimissDialog(); + //release + mAudioManger.release(); + //callbackToAct + if (mListener != null) { + mListener.onFinish(mTime, mAudioManger.getCurrentFilePath()); + } + } else if (mCurState == STATE_WANT_TO_CANCEL) { + mDialogManger.dimissDialog(); + //cancel + mAudioManger.cancel(); + } + reset(); + break; + } + + return super.onTouchEvent(event); + } + + /** + * 恢复状态及标志位 + */ + private void reset() { + isRecording = false; + mReady = false; + mTime = 0; + changeState(STATE_NORMAL); + } + + private boolean wantToCancel(int x, int y) { + //超过按钮的宽度 + if (x < 0 || x > getWidth()) { + return true; + } + //超过按钮的高度 + if (y < -DISTANCE_Y_CANCEL || y > getHeight() + DISTANCE_Y_CANCEL) { + return true; + } + return false; + } + + /** + * 改变Button的文本以及背景色 + * + * @param state + */ + private void changeState(int state) { + if (mCurState != state) { + mCurState = state; + switch (state) { + case STATE_NORMAL: + setBackgroundResource(R.drawable.com1314080901103_button_recorder_normal); + setText(R.string.str_recorder_normal); + break; + case STATE_RECORDING: + setBackgroundResource(R.drawable.com1314080901103_button_recorder); + setText(R.string.str_recorder_recorder); + if (isRecording) { + mDialogManger.recording(); + } + break; + case STATE_WANT_TO_CANCEL: + setBackgroundResource(R.drawable.com1314080901103_button_recorder); + setText(R.string.str_recorder_want_cancel); + mDialogManger.wantToCancel(); + break; + } + } + } +} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java new file mode 100644 index 00000000..d8f841b8 --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java @@ -0,0 +1,104 @@ +package edu.hzuapps.androidworks.homework.com1314080901101.view; + +import android.app.Dialog; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import edu.hzuapps.androidworks.homework.com1314080901101.R; + +public class DialogManager { + private Dialog mDialog; + private ImageView mIcon; + private ImageView mVoice; + private TextView mLable; + + private Context mContext; + + public DialogManager(Context mContext) { + this.mContext = mContext; + } + + /** + * 显示录音的对话框 + */ + public void showRecordingDialog() { + mDialog = new Dialog(mContext, R.style.Theme_AudioDialog); + LayoutInflater inflater = LayoutInflater.from(mContext); + View view = inflater.inflate(R.layout.com1314080901101_dialog_recorder, null); + mDialog.setContentView(view); + + mIcon = (ImageView) mDialog.findViewById(R.id.recorder_dialog_icon); + mVoice = (ImageView) mDialog.findViewById(R.id.recorder_dialog_voice); + mLable = (TextView) mDialog.findViewById(R.id.tv_recorder_dialog_label); + + mDialog.show(); + } + + public void recording() { + if (mDialog != null && mDialog.isShowing()) { //显示状态 + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.VISIBLE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.drawable.com1314080901103_recorder); + mLable.setText("手指上滑,取消发送"); + } + } + + /** + * 显示想取消的对话框 + */ + public void wantToCancel() { + if (mDialog != null && mDialog.isShowing()) { //显示状态 + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.GONE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.drawable.com1314080901103_cancel); + mLable.setText("松开手指,取消发送"); + } + } + + /** + * 显示时间过短的对话框 + */ + public void tooShort() { + if (mDialog != null && mDialog.isShowing()) { //显示状态 + mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.GONE); + mLable.setVisibility(View.VISIBLE); + + mIcon.setImageResource(R.drawable.com1314080901103_voice_to_short); + mLable.setText("录音时间过短"); + } + } + + /** + * 显示取消的对话框 + */ + public void dimissDialog() { + if (mDialog != null && mDialog.isShowing()) { //显示状态 + mDialog.dismiss(); + mDialog = null; + } + } + + /** + * 显示更新音量级别的对话框 + * + * @param level 1-7 + */ + public void updateVoiceLevel(int level) { + if (mDialog != null && mDialog.isShowing()) { + /* mIcon.setVisibility(View.VISIBLE); + mVoice.setVisibility(View.VISIBLE); + mLable.setVisibility(View.VISIBLE);*/ + + int resId = mContext.getResources().getIdentifier("v" + level, "drawable", mContext.getPackageName()); + mVoice.setImageResource(resId); + } + } +} diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/MediaManager.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/MediaManager.java new file mode 100644 index 00000000..6089522f --- /dev/null +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/MediaManager.java @@ -0,0 +1,75 @@ +package edu.hzuapps.androidworks.homework.com1314080901101.view; + +import android.media.*; +import android.media.AudioManager; + +import java.io.IOException; + +public class MediaManager { + private static MediaPlayer mMediaPlayer; + private static boolean isPause; + + /** + * 播放音乐 + * + * @param filePath + * @param onCompletionListener + */ + public static void playSound(String filePath, MediaPlayer.OnCompletionListener onCompletionListener) { + if (mMediaPlayer == null) { + mMediaPlayer = new MediaPlayer(); + + //设置一个error监听器 + mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { + + @Override + public boolean onError(MediaPlayer mp, int what, int extra) { + mMediaPlayer.reset(); + return false; + } + }); + } else { + mMediaPlayer.reset(); + } + + try { + mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); + mMediaPlayer.setOnCompletionListener(onCompletionListener); + mMediaPlayer.setDataSource(filePath); + mMediaPlayer.prepare(); + mMediaPlayer.start(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 暂停播放 + */ + public static void pause() { + if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { //正在播放的时候 + mMediaPlayer.pause(); + isPause = true; + } + } + + /** + * 当前是isPause状态 + */ + public static void resume() { + if (mMediaPlayer != null && isPause) { + mMediaPlayer.start(); + isPause = false; + } + } + + /** + * 释放资源 + */ + public static void release() { + if (mMediaPlayer != null) { + mMediaPlayer.release(); + mMediaPlayer = null; + } + } +} diff --git a/app/src/main/res/drawable/com1314080901103_adj.png b/app/src/main/res/drawable/com1314080901103_adj.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfd3cdfc6d241721ee29902c91e6ead69ebe667 GIT binary patch literal 1362 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$ycOUR;`;ypf9HA9qiFbrz#aF! zTENJjR}$nG%)sEh?P3Rq-=F`BoPKhfe&7*#xPo!(iL6VqpP$LB{cW3a?qp1TWANeg zERh@kS*UzmcFamzD?Ykt$MdP~svgDHDrSrQeaXb^W|J5`$8{&`$_cZk3q82Y_S&d7 ziqC7^w7$%@Z!F8JZV)2gdLBxmRw<% z(Dt5uv+Rq~`>#_@8P5${vw2nJpYY?J3=B-2o-U3d9>?EKOOFCV=lQlF%Xy7#9uM)0%#1fqBHk-X<-Pr@jT|?H19T zcNVDyAAh)3X6-7r>nl#GO2*%~!*=HOI+g2e7Yb$7U%zBES+RG6EXVsN2?zBa_$*G#dXyI(FTCK`v`+1U zV){<$Mww~+%~Egs6J!dfWww3UP!n>%Q26V;$6qcAoih@$E6WzNcPyA>#b>quZOXA2 zn^gI)nFl0KF7Hyfc)W<~ic>+@mGi2qpDK^&Z>SNhTov!+y*;OGtMa6zpPL%$R>eD> zZt(H@uPOeK$I-j$-@Ns=wllu7Y@Eh7vqm>r*z@MRpH@+MCsOp4%p>=)N~!G7eRVbN z<|-+niPk#&PJO~x7}}hLey;Q2ahgG*YyGj5h{ z-mw1#?;mZxBl)w!pTBp~yFTT3eZ{T1SMj%#*B$+I|Fr&;%=m;4<=%UN*@wZ?)z4*} HQ$iB}s|Y{= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_button_recorder.xml b/app/src/main/res/drawable/com1314080901103_button_recorder.xml new file mode 100644 index 00000000..45657bdf --- /dev/null +++ b/app/src/main/res/drawable/com1314080901103_button_recorder.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml b/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml new file mode 100644 index 00000000..c14d9297 --- /dev/null +++ b/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_cancel.png b/app/src/main/res/drawable/com1314080901103_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0d6f3dbcb9cb4e9477b7e8f56aa29fea51f74a GIT binary patch literal 1858 zcmeHHc{~#e0AB7RJ+WN%lN`lMJmktzM9j2^@Z36FWgDZlQE7V`jg)Ja7LO^y+()4v zo^6gP%+W9*+oLqovMemW_uu>b{oD8Zj{m>k_xm!uAZ|(uS_%LFKndjTa(*XQchn>& zx#J{fZx#R`A?xMo>ni?5Ev#IYT7v^>oc! z7r$iseA7g~YI|#U<_2i?{-J&_@9H(|A2DYSuPTg=6}Uf&by0dh60bdculYoi!M8!1 zN+DbV%KA-3=X(o%c}msnnXIIhE6wh$yhS1+eE)%qg~Uk5({BW|)tVaFjDaJe!Q|3u z^Q44bZR%W(+TA|>@BUAU6eq?T>VS(2r|$H29sIoFo6j^}|7sLXso6WHY-oQARYq!N zMD+szQVt*&C*K>al^LOrsuNIlwOoUKw^UH^P^$}4=LOuGR|<3jW_2PzP4=>rdHdS8 zA7U14ba^>b;K<3=l-DO4VeF{;(<@N(WM>^Y%)ji`F{_W~mj%mbK#gWHK6Tn=Xuoc4jcxVEka^ymeu!CzUbZ;%sGT(7|h=3V*`Asa<|x#&{`8(@t#i5F^y7}~C3bXb=je+YQF;9pwA1ib75_bi?ekR3QOec6)Y4dVq=iH8ct z-%17rRXfVQGd8WOIyOzWQm27Cnn=)>J=ER0Z=JH^CQ#y@d9}{L@l2z-%$Y3KDCl}e zN?PY!oPgWrGYfk%vUCJYnBj*AERKZ)t$H-fMt+xm)F*K?=_@56_e)mEmV#4)%zS9M zQ5z=ZKE=;y_>?1U0{+r%qH?UFES4Fq5DKv=;67;ZltLqu!FP8=aJJYsNYBI%l+CsPC^pos~w zNtFhLk3>8_(?%R?iK+6~J@KV)XJ)ZsZiPXis63<`O$=TppaU_L+&=jDE{*WiT{8d6 z-p>t&;%K5VgtWD-6cQoLL&&k;>`N&beQ5nrXR64r9=kAGUYp7f5j~KEYjbHi+`0x~ zI?f_M(6+BLW__rFiJXu3-J6oR<@vEKM<^w(ys`+AhJj6P*QGa$ImAt$GsfDGDVbuk zOU=yW@ux_q+Cu|92yPt8H28R=LkD#Ti0IbFS^?(cQca0X3v(|HjJI2j>DSTQRH#AE zuha9klLP&GQfoC^Gms8s;ayaFfi)~`mA$7>w&jEdTIXy(j@39xfVM~x6!p3~k;Wa! zWQG(zSqS1`ts)Eq?8)rX#UwbzpomvcA?$Wgk-=iKaZMZg(dGg6H`l`mZ>rLU!};^C zP23cFx-Qa64u>f$blve63v7_sjc~q*F{?KFN>vYF%yvu2TQ61~xZ2th&YwGnw;cit zl%$1Aire3okhrvB65*Tq2L{t1OdyS~mGl{0XSsU_1WG50>}qP={&@`Ba=4|gXV`Uc k<|J0aNm=SYe6YPKv9cIq5`^vkbLRm8AXkVB#W@`F1LU2TQvd(} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png b/app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png new file mode 100644 index 0000000000000000000000000000000000000000..5888fc802bc493cc99168f982e5ad7f8c3826011 GIT binary patch literal 2336 zcmV+*3E%dKP)6vsgp5%3WY9|4A853?)-AArEFSy^h@Yb>42bcB2WOE$fn)SSw4EX}d0CW}l< zM<+{#)Tjs+SQKRiA><*3pt1-HE4w@d@pjLT^ILwit+c{#mu2_XcNTwM`~h&XLL1OZa}- zEO1#&l5dn;`K2sDSt)DgR7%a4w+B`5HP43NfU#M21B#2dVHQ$9&NQc3d5 zuae?Q9l3tJgWR}rqhF}BO3&H+j_qoaegx3`mP*RGM))>hKe($a4P_JZ2l+Gx;RCztA4$osoW4Nizk$T}FY@JBC! z6RZw?KqvUDBrs^^8z;!0s#?z2{s!9|XF$IS&o`21*Ph}WKu39c$bvn-)^>mp{9Z8R z`SrP^sG^aJa(jYqEa;zF(@GY9l-KD18hDh0#99t8q?)MMbU7F>`|TWZ?xN1_!3#%0 zO??X&a9j$C&-e&gck1=C&^V+TdrLFsI6zgZ#W^6WcJh+FqtOA*mQFXW z(s;!dXc$%k5b@2;%?>AU!20h>I-@^Uu@kshGWwm-yKd6>%+t{5nR2Z|g6DPqvW`5m z`Z(u+;p1h4EgAh>)Q3kOehwO2zNLWkz9Ykj6co3ukb@6gM2LRUZPZ7s{PQzt?1z*p zhX&6JIB=!aTuK*uG>Jb$_45?wV1Z6ukrqeUq)2UTqh{;dj*6PsJx$rF-hgD<9_yhf|LMz-ufZ>aH+B`Axe z@oCddi~{rE>vTFMGsVvbP&zNH_c!4H2H#TR=YwyOD?8!GDb_LgR?=-f{St^ z1kvthlxljmx5L02!_RD@d_t-27vy$toLC15pm(>mY##ipSFbWrsjuM86uDB5-~;h2 zcPLJ(H%l>248FMVgD}ku!4xC0$VnChZw#NSUhv2KKB$Mc(i!|-z#l2Nm(`OeVTdUY z{0F{Pt7W39u4%AN-HwOvXg_EOPGlJPo5HtD#ah6`=kDfT8e!lWdOh6X08 z%j$aTz!y%q47`=$!%~wr(gclF*Jv1gs`AP@9=_V*w-KXa)42yrbBojrK2=8EWjwJ; z&9>A%T*D3Y@aW|4ps~c{a#CMk@9=^nL*Nm*>@d8y<727o|J>UP56}N{DKxff>lp^0 z>XnaAbMPOWxAl2TzP-S`I^s5LL=Zpe7L=(S8hn0*h%b%{ltXSUJF`zRMb5#HNz>h7f}*ry&DFnN&_mR8X4vFr;(qtQ5= zQcqSHmYBf9#Ezz@&pPrikHDldX40ZvTcPn;^aoddakWE%FRQ3Al!#1OwD$`M6Fiaz4Fdhkry|d!si@+O`{y{rMg{^a$GC{ zpHDrWxSkDkb@iM`4LAXYJn`mna_FxTQc+Q1w>p|pO6I(Mf-e&}=@m3J0MBZ+Ag|G2Qqh2M((ExBju+P}YrzgFD^f0i%^?eSCXJi%&IXCZ4Q`Nx2`bV21qD%VPF8w9UzmP` z4)DTtZXiYl7&(OsCM3A@1;)>$dXj3EK(lQ`ygg5%osXg2kyv3o5mt9NxsJmAdYY)s zvC3!c0C${pd~n$nh!FzSxf9U%V9b@1ZCH~qtvrmQcs%xF432K&VpkWZKK!FKdSFHMn*9}+zP}?3=IvJk%K{cp=QK@%p}Tk0|NsupymbST8alR0GW-` zVh0BY7NDYX8d!{u%RzQwH~=USM+eJcQ4@n=xv8nCEG2PGPTJ7d*Owj;-(w90pg`{c zIG`Jz&w&Dq=VN^Oj)4u-dB`o{{()?e zfE + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_recorder.png b/app/src/main/res/drawable/com1314080901103_recorder.png new file mode 100644 index 0000000000000000000000000000000000000000..e12231f820df016a97eed2eda0cca98f648cc434 GIT binary patch literal 1839 zcmeH{**6;q6vkr-lGavY9byeNmX^}0T`i5B*q5oc(~7kkRi;%W_J|Qt$}kNh=_#$W zO$CD%rPdHdL}QD+jjhyDOBr+KW&VaabIg06-Xi*~a78 z@s2=X(~;knaS4fs zJ<%sXe7k#C+eS}hzx?=UHK9UNQxcqJUG8>72>ems`(^{^b_j*;JMFK_tzw2>CX77q zM?L0t_bX>>YOrRt&+8Gj%MVNiUro}Mx(NP0oLKBqfU8H?8;0y^x;4QrO}>;9rL7X` zRpV|RC&9NP{Y!qt>Vi%xJdJR~2&faciyYH}1X>n(DaB5W_KQsF-qu)`ln|Nk9W#po zJwlPuj^A30sr7!T2op7Q+y*8N&bzh%T+3^laI9Bf3`IgM>OH~n78VySf$MS5KwV%$ zGPLwGaCt!x`j8jKYkdYIjtk~jm1z~S`zM+Jw<{Byx%qsx^a2kEdWwt&%LXq6o+ckw zdfiB_jv+ss+L&dFj55Ann(&Vhq|-*l{yl(mBoqkh_L|{1XjaegB653`*QKVUG|k$X z8x_vRkwSR9ZV#Oy^_v>0{iYJx+P zSCU+Z6)ZYMeJtI0`Xo-is3iwKVZ#@awj#5rG|cc03 zI!xkQhfzbkvo|{s#9n+-ngHrseM7e|6aXrSaSR9$ zgsLo!j%4||jy_FVx+t9Kw-{wfO5H`i$ag{I+u6`D=R@bD3@!`;)$2mrd!urPtDEDL z1|e51`bdqi&m#=Aiiq*#@K$LNYD|G*L({!21|uB3wLM7oYKuu8vkz%_mOoDhVLkwb3FN#ExqE$wBPMJ%p$a zJ}X*VH&R~Fsmt2cy&J(gNL6tqHX|c^S9(KiDRxsYqxbC~yWC>OnAZIiGpxZL+mAX2 zVL4oE))J|DV>sM|Xa5iu=~K$8TN7@jKH**wW!o~H<1jmKlMsdO?s)1rAz`z-+jBEeV|ReY-{Q$n49N#$k(P9SYQ_kj9mI-@pU||K`Cl d7Pjg(C4@j$rkRzwd&h(Xz-?V@DAvK4zW^5Hb?*QG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_v1.png b/app/src/main/res/drawable/com1314080901103_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca1a7336c7e97ad347966f1a13c3d2e9e3203ee GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQpN#3A+G;P2TuiFxC6BdmIV0) zGyIR#{K|ZCW`@OI?i(vAJS1W~SC|4NV?A9QLn>~)y?T$?V zt@2tRuYGnJ6HpZjII#M6Nbo~D5xHXlJC^3zEIm}LwWsCKYca0(D;X_=9vX}83wn54 dnwjCpRQB3%#*^E>wXuNod%F6$taD0e0ssOpwqAQn3L(A+G;v3G8zp90yt?UlQaO z%<#X)NBY(7?r80AET?8=TSaPqWj;AG!{RUZjTIFh5~jIdbAU?QJzX3_DsH{Kc08Av zk%!^n=1o&`Jo!%joxYOqORS8+46n-XDb3*r-xRA zw%RZLP$k^D{pzz@p$}_C{}r8Tm{>dWe&`Q@*8b%he}d2c*v|Do^x=Pvntd)0v$s0r mh5m?Zl@I;#vWJnO=M?u>cb3jSY7aa>)_A)5xvXOpwqAQtbggA+G-i2M`MPZU#C@wj(^8fB zAdh*vIEGZ*dV9^?&)HGH!LgZ9T6oThlPr^W{{Lygr2XZ~(pB7hT>E#Wn=k=Y!@!Sv z>-t-34?Wh}Bi{O*f6<2}RWX;fY9dtK?_6={wAP-k zL$9-r0j2kF#fLmRtx;1d+nT@XY-x1s`&A$I27}c73}`hE{P9tf%Rbz=ZsnodT7RTk w@84Ve!F{WP-RckFqW{(%vOg!maA3h7CWhS{PLIT9ih`Wu>FVdQ&MBb@0CesI761SM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_v4.png b/app/src/main/res/drawable/com1314080901103_v4.png new file mode 100644 index 0000000000000000000000000000000000000000..2f341e663dae832b2912a32ebf4070b629ff1ebf GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQX2z&LR|k3H88LHtt-&+)+IrH z!3_ToOh_>J#ddyvfrG%k_4V`e?EdlJU0drX`(|%%Y>kiftKHqv+TU1C&C0fl)cneP za%P6bU+x<#Dm)~Z9d>5|jk)IO;uunK>+LmDK4(WBhKmNqKydee!pq>L(zTiQSeM20+#x$&cuf}B zpuO3p^>oM%rqJ}V|x>(1gswby4ZX^5T4tYx$0kg|r& zvU?Ryt;<6y+*+RpRBUWHq@7i?cIAgQuKd{4Nlay_?^b+}Lnp}FY49mjw!WqQgjF^A{t(nIyffj(sLboFyt=akR{0Da6tX8-^I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_v5.png b/app/src/main/res/drawable/com1314080901103_v5.png new file mode 100644 index 0000000000000000000000000000000000000000..6f75e9c5aef39df340e73d09fe775b064a954fed GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQV#=sLR|k3caUlG|18k6-X%eP z!3_U}A8%?3R{qF%a8i=dZ}y7|4@^if_{Da9eu0C)z4i6;^6dWc-(6elC;Mh^Z)}Z^ z^sC+7(c0fwPR+`;iq!ndd~#-n#b53lD=IuBjQcl-GcYjndAc};RNQ)dE#1$_QN$t9 zfyHrxmY7SG_?iw`SC`cP+(q2~6f9>xsgbs*oLO0%ucG8RNdtH2Et3KKLPz=sBl{%`zhAf}IyVu$d}yqbhpIAyuuIWrx}Wb`-I+ z_OFbtb!zorSumArzT-owuPO6_AMR524N8bkYvwXvS-{P;-8x{0ckDVj(RaZQ8Aaus z9twUf>RtJPRdk-kIThAzseUUzsEY1uI&}StiAmaS4@9Bk;^{t zVY>UwB?q>h5!d>|)p}nn;Ky96$NXA*mK>TNQ1O+u_4*a&Prj}7D?aFp-m^Fc^iOpwrLU|I4Q~KH~Ynf2PPyK{9-#lzraD@ z-un7^d3OK!@2;)&lYO(dH@3z{`ql34Xzgz-r)FhaMQVO!J~=bP;xG4&6%`&5?<214 z2F8Jfr;B4q#jUs3UYa!}ia0!MQBp~s=`^!_isH!$0Vk&@9{L;Kk^LciefiqG`41x3 zet$hjxO2u#2-x`b?|Kc^@6I0%D6kw~Vcr+~L4cJ%xPYn2eFdYD*TH0wIZGZCa`^e~ z2sx{>;d7Z#)AAMZHogaqMQpqeW^$Z6zzLwQ)9^wjQ?uJ`aa-;9_xF@4|b+T+#)p(yo@&=Sa(K=b-Kn6fu{aG z#UCxdcAOHa@j58VW!L;b%XH^C%^yuo`myP0VmGE%x*jy;+Sm5L>gzFcks9xVaqvyTy-T=XGSK3KNDuPcmCkb-W0#myl(M>a;|?358kP>)CV#zaX)xp nkjg2=i_{HqKPnzxa#(A2+sABMR^>bP0l+XkK^o-<_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_v7.png b/app/src/main/res/drawable/com1314080901103_v7.png new file mode 100644 index 0000000000000000000000000000000000000000..26c21a8fc4ba4dc4925bfcb2fcb2f720a00a9d5f GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwrLU|_Th@CkAKKME)afu)=J9s&b2 zt0c%TnBo769Ub8sUzm^2NH_n(b$xl6TdEo7)g`5_qEEKAgs6OC5`Mg?DOmX<$A5Qit)J|hy}hwDKGLstcSmb~V>vY|+bUA? z>&clJ7Js>Ktf=si@R7UJ3XH!5PZ!6Kid%25g$6Mv3NSo;;MmmiU|r*bcXCWBJ9fYR ztA9XJLvGiA3$L8BvwU*P|b0<8SOA2?Y0`y4-5 zY*kUavph}gMy0jq!C(;^--E^iHrDJ1KVJ#o>u|7JWRJ_i(*k>(de4M%#T74|8JQ6N z%!)NX;DZ`V{!+z?*}rxeiR^JcxLafo`@zVpqNf@a^PBi%(t+kpt@JqPE>gpDQ2mOv z-O>lfTz1PJaC7Y2)AS%atLSdP2VK_tJ5Qa_*`WP-UX#4S4@0hl{#UH)mOT*Xs%w3) vy`1CU0=5(Cto4B(%vt~MICcgInqG;QNhu#^FRHZ$#xR4YtDnm{r-UW|$z?4V literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_v_anim1.png b/app/src/main/res/drawable/com1314080901103_v_anim1.png new file mode 100644 index 0000000000000000000000000000000000000000..044965e8f66168fda12575adc6c17082f538e6f1 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2KG1AIbU{|{~;ye9V#(5a>+L4Lsu zvhJ!CzyJT6&1jRzdTnL#bhg(&jiOT4O?&%>Pi}%qsC~HPj8`8;maS$9ZhQFR9rMW} ze5ehG`>*nZWk{YIXDuDw#l1pdB@tJ<^NbJicf z=O>i1+^XUj+j&v_2b_U>QY?b@Bvq`fV9q~!?eX1t51ae^j9dDDa#}0SnJXH9V^{Lg w@V5N&e&=6JwohiN^?j?lt)38h&HpPS4?l=*z zS*z2p_g|+-c-j8|##w@=i(`n#@wd~iM;&qyXcfN5+PdOKK*)h6*^SB0Avzj2Hh%y0 zuV0}$O~1%;=4;#V;(hu5&P+S0(wCf?sygwuNY=DXx~mp$=;_S}+uC(wo5q6~EnjaP zEGzMPU=eXuHF0`M+BFRL>{hS+W$*_S~smP z^X(hU@+!Hm+a{s*xtfwQX1a*J`gC;l>7KSbFOu`#?Y+9`)-PelBdsM@*d?^RC*Lgl zqV)djlvBoY!`5tGRawXXV-{m$(^c%EcQ6NfZd5Hr5qIzzDc-a`piF7-(dKvG>VwUGCA2)2iJ$-|i{tfq9!2(a?z(kc_Gm{puHJ$$S z%WJ;dzOEmp%U++j{FV34%S*Zw#axnn%vE_VeAT@pdFABCrA6!h=084Jy)Rdv`A)G& zc~t4Axh+aUn{7YG-r2ca_eRH^^eP4^r3#Jp+FMvlBi!61+7z}6hcLM{OZ}Ya!}EFB zrVXNUmrDiLZcvxn$=kW1cDBvZt+Gqr{`66{cYox1Xx76*b_RXZB1@t5AwQ)jo1B}v z(7|c%yWYLiIy+CcH12uGWu_|SUfO+omRn8RO7Z`u*2jNrbC0*Z@Az$%WF`Nfgr#4$ zYKB_$8OfDv@;k}B2zYAZ|7eT%&Y#L}{JY&}bN+UiWco|zoW91oe}A5?KL54ziS(P5 zCm!if6!BxbZ@c008NY(RUpm(rPP&}_l0)2d)9Po5{|%&n_}2*3OUhN%d+)puFz?Uf k%wO4c5&aR`xi@dy3z|gPrw2mdKI;Vst03R1_(*OVf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_voice_to_short.png b/app/src/main/res/drawable/com1314080901103_voice_to_short.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed0dc11eeba48e4cce25202ddcf547709615d76 GIT binary patch literal 1749 zcmeHH{Xf$Q9RKdoGR&RFW^HpRI+sRCr93Ph%R?f}ti@e)s%d$68Ah9Fi&}bcmWMob zo^F^cY$w%(B=R&JCF>h$lW38e>s~sq`|bXPd)?>tet$l{zaKu?fdSrz`dEDc01PQU zUO}r@yUHdMY;|8JAAAM?kcmLQL;Jq`KmT0?PBQ;IzUp^rVo*RZU~}X`^xL#?4Whf|h9L83B-ss*gS}Lg7N)p3o12U^=Us_E6=;v{@2k%~w{H^O zQC`ORN_5|NB+6AOspFjq`DU#w=5lgI#K54hycKz%g=npZ8oEu$88>*=6xESf3jlBw z#mn;$``O&Y=Lmz-rrqza)>jpo&XkxjXIf|T=fkq|A0}PSi`X0#R9@%$yO&Q3`HV!k zv^(^1-={uIhIYB+(;01QjI3a1Lg9uhHk2ziqVwVE9MO4~3pzP9jBL=l-Eq@Xoh0v< zCB^d*!`KIf!!A`7sV>o$RnaE}uVP}Nt<0m}X$uUa?Qr*j%HFW)!~u?86ctJ#F*46sX0 zv~B=PWWq88#-`vGNbs5@XafQm-3hS(xU<)}vr7fGCYa;8?%g07g-b^c& z1MBg1X@0tHWug(wLF@NXbEH|&+?w|Ffsr!oTLJX5cZf>Cv?GaX6+coLtv8^#e4gzg za1E(3zAi)$Ij=lcW)>TSD1pO*B}P`Xq2}4fayPv^a<6u$=XR93|d-To2^UA1=lnvvoYjp4BQHVNsC zEqj+6Kfz*SsNo){$&oUQw8v7)#*ez1Znt`$C5g(Fc6C%5YaAKWCTwSQWJd0-4>V=P zhN9?RU{aX+G>+MGR=t$b469D(!z^YNAMky0N*Cw?m~3{jFyALCjig#ApX~NkBL2GP zA{qCl-FBztD2GWnd9VzPd6zuy+e^fat;}s>ThOp7e2~<62Rfm1>#^y>bS_-Up-Qds z2d~adhw6y!Ek~W?bU41VXwUJUaN^ti{2PLZ*oKt*TQqAKJz50WzN3V=+S7mG>qK|p X+UP9CTAE$6`n~|lz5uTVa%AS;sVFFc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901103_xy.png b/app/src/main/res/drawable/com1314080901103_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..88b90f194d84264133295304fd60413ba8a41b81 GIT binary patch literal 6201 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/com1314080901101_activity_main.xml b/app/src/main/res/layout/com1314080901101_activity_main.xml new file mode 100644 index 00000000..c16dc6fc --- /dev/null +++ b/app/src/main/res/layout/com1314080901101_activity_main.xml @@ -0,0 +1,42 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/com1314080901101_dialog_recorder.xml b/app/src/main/res/layout/com1314080901101_dialog_recorder.xml new file mode 100644 index 00000000..fb0c308c --- /dev/null +++ b/app/src/main/res/layout/com1314080901101_dialog_recorder.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/com1314080901101_item_recorder.xml b/app/src/main/res/layout/com1314080901101_item_recorder.xml new file mode 100644 index 00000000..4b6ef82e --- /dev/null +++ b/app/src/main/res/layout/com1314080901101_item_recorder.xml @@ -0,0 +1,36 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/com1314080901101_colors.xml b/app/src/main/res/values/com1314080901101_colors.xml new file mode 100644 index 00000000..3ab3e9cb --- /dev/null +++ b/app/src/main/res/values/com1314080901101_colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/app/src/main/res/values/com1314080901101_dimens.xml b/app/src/main/res/values/com1314080901101_dimens.xml new file mode 100644 index 00000000..47c82246 --- /dev/null +++ b/app/src/main/res/values/com1314080901101_dimens.xml @@ -0,0 +1,5 @@ + + + 16dp + 16dp + diff --git a/app/src/main/res/values/com1314080901101_strings.xml b/app/src/main/res/values/com1314080901101_strings.xml new file mode 100644 index 00000000..fa1b1ff5 --- /dev/null +++ b/app/src/main/res/values/com1314080901101_strings.xml @@ -0,0 +1,10 @@ + + + + weixin_chat + Hello world! + + 按住 说话 + 松开 结束 + 松开手指 取消发送 + diff --git a/app/src/main/res/values/com1314080901101_styles.xml b/app/src/main/res/values/com1314080901101_styles.xml new file mode 100644 index 00000000..1202ebb3 --- /dev/null +++ b/app/src/main/res/values/com1314080901101_styles.xml @@ -0,0 +1,15 @@ + + + + + + + From 8611153efea6b56c016bff24bb33c282a4b8a13b Mon Sep 17 00:00:00 2001 From: baijihui416 <253759872@qq.com> Date: Wed, 8 Jun 2016 16:43:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?#88=20#90=20#94=20#95=20#181=20=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=A8=E9=83=A8=E5=AE=9E=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../homeworks/com1314080901101/MainActivity.java | 6 +++--- .../com1314080901101/RecorderAdapter.java | 2 +- .../view/AudioRecorderButton.java | 6 +++--- .../com1314080901101/view/DialogManager.java | 6 +++--- .../main/res/drawable/com1314080901103_adj.png | Bin 1362 -> 0 bytes .../com1314080901103_button_recorder.xml | 6 ------ .../com1314080901103_button_recorder_normal.xml | 6 ------ .../res/drawable/com1314080901103_cancel.png | Bin 1858 -> 0 bytes .../com1314080901103_chatto_bg_focused.9.png | Bin 2336 -> 0 bytes .../com1314080901103_dialog_loading_bg.9.png | Bin 267 -> 0 bytes .../res/drawable/com1314080901103_play_anim.xml | 6 ------ .../res/drawable/com1314080901103_recorder.png | Bin 1839 -> 0 bytes .../main/res/drawable/com1314080901103_v1.png | Bin 242 -> 0 bytes .../main/res/drawable/com1314080901103_v2.png | Bin 340 -> 0 bytes .../main/res/drawable/com1314080901103_v3.png | Bin 441 -> 0 bytes .../main/res/drawable/com1314080901103_v4.png | Bin 531 -> 0 bytes .../main/res/drawable/com1314080901103_v5.png | Bin 651 -> 0 bytes .../main/res/drawable/com1314080901103_v6.png | Bin 757 -> 0 bytes .../main/res/drawable/com1314080901103_v7.png | Bin 857 -> 0 bytes .../res/drawable/com1314080901103_v_anim1.png | Bin 454 -> 0 bytes .../res/drawable/com1314080901103_v_anim2.png | Bin 845 -> 0 bytes .../res/drawable/com1314080901103_v_anim3.png | Bin 1341 -> 0 bytes .../drawable/com1314080901103_voice_to_short.png | Bin 1749 -> 0 bytes .../main/res/drawable/com1314080901103_xy.png | Bin 6201 -> 0 bytes 24 files changed, 10 insertions(+), 28 deletions(-) delete mode 100644 app/src/main/res/drawable/com1314080901103_adj.png delete mode 100644 app/src/main/res/drawable/com1314080901103_button_recorder.xml delete mode 100644 app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml delete mode 100644 app/src/main/res/drawable/com1314080901103_cancel.png delete mode 100644 app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png delete mode 100644 app/src/main/res/drawable/com1314080901103_dialog_loading_bg.9.png delete mode 100644 app/src/main/res/drawable/com1314080901103_play_anim.xml delete mode 100644 app/src/main/res/drawable/com1314080901103_recorder.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v1.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v2.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v3.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v4.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v5.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v6.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v7.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v_anim1.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v_anim2.png delete mode 100644 app/src/main/res/drawable/com1314080901103_v_anim3.png delete mode 100644 app/src/main/res/drawable/com1314080901103_voice_to_short.png delete mode 100644 app/src/main/res/drawable/com1314080901103_xy.png diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java index 4b49c0f3..693fb364 100644 --- a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/MainActivity.java @@ -48,12 +48,12 @@ public void onFinish(float seconds, String filePath) { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { if (animView != null) { - animView.setBackgroundResource(R.drawable.com1314080901103_adj); + animView.setBackgroundResource(R.drawable.com1314080901101_adj); animView = null; } //播放动画 animView = view.findViewById(R.id.recorder_anim); - animView.setBackgroundResource(R.drawable.com1314080901103_play_anim); + animView.setBackgroundResource(R.drawable.com1314080901101_play_anim); AnimationDrawable anim = (AnimationDrawable) animView.getBackground(); anim.start(); //播放音频 @@ -61,7 +61,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) @Override public void onCompletion(MediaPlayer mp) { - animView.setBackgroundResource(R.drawable.com1314080901103_adj); + animView.setBackgroundResource(R.drawable.com1314080901101_adj); } }); } diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java index 667f9fff..9ad3f00d 100644 --- a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/RecorderAdapter.java @@ -1,4 +1,4 @@ -package edu.hzuapps.androidworks.homework.com1314080901101; +package edu.hzuapps.androidworks.homework.com1314080901101; import android.content.Context; import android.util.DisplayMetrics; diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java index 2b2d2a76..88ef8287 100644 --- a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/AudioRecorderButton.java @@ -196,18 +196,18 @@ private void changeState(int state) { mCurState = state; switch (state) { case STATE_NORMAL: - setBackgroundResource(R.drawable.com1314080901103_button_recorder_normal); + setBackgroundResource(R.drawable.com1314080901101_button_recorder_normal); setText(R.string.str_recorder_normal); break; case STATE_RECORDING: - setBackgroundResource(R.drawable.com1314080901103_button_recorder); + setBackgroundResource(R.drawable.com1314080901101_button_recorder); setText(R.string.str_recorder_recorder); if (isRecording) { mDialogManger.recording(); } break; case STATE_WANT_TO_CANCEL: - setBackgroundResource(R.drawable.com1314080901103_button_recorder); + setBackgroundResource(R.drawable.com1314080901101_button_recorder); setText(R.string.str_recorder_want_cancel); mDialogManger.wantToCancel(); break; diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java index d8f841b8..6e449980 100644 --- a/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java +++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/com1314080901101/view/DialogManager.java @@ -43,7 +43,7 @@ public void recording() { mVoice.setVisibility(View.VISIBLE); mLable.setVisibility(View.VISIBLE); - mIcon.setImageResource(R.drawable.com1314080901103_recorder); + mIcon.setImageResource(R.drawable.com1314080901101_recorder); mLable.setText("手指上滑,取消发送"); } } @@ -57,7 +57,7 @@ public void wantToCancel() { mVoice.setVisibility(View.GONE); mLable.setVisibility(View.VISIBLE); - mIcon.setImageResource(R.drawable.com1314080901103_cancel); + mIcon.setImageResource(R.drawable.com1314080901101_cancel); mLable.setText("松开手指,取消发送"); } } @@ -71,7 +71,7 @@ public void tooShort() { mVoice.setVisibility(View.GONE); mLable.setVisibility(View.VISIBLE); - mIcon.setImageResource(R.drawable.com1314080901103_voice_to_short); + mIcon.setImageResource(R.drawable.com1314080901101_voice_to_short); mLable.setText("录音时间过短"); } } diff --git a/app/src/main/res/drawable/com1314080901103_adj.png b/app/src/main/res/drawable/com1314080901103_adj.png deleted file mode 100644 index 3cfd3cdfc6d241721ee29902c91e6ead69ebe667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1362 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$ycOUR;`;ypf9HA9qiFbrz#aF! zTENJjR}$nG%)sEh?P3Rq-=F`BoPKhfe&7*#xPo!(iL6VqpP$LB{cW3a?qp1TWANeg zERh@kS*UzmcFamzD?Ykt$MdP~svgDHDrSrQeaXb^W|J5`$8{&`$_cZk3q82Y_S&d7 ziqC7^w7$%@Z!F8JZV)2gdLBxmRw<% z(Dt5uv+Rq~`>#_@8P5${vw2nJpYY?J3=B-2o-U3d9>?EKOOFCV=lQlF%Xy7#9uM)0%#1fqBHk-X<-Pr@jT|?H19T zcNVDyAAh)3X6-7r>nl#GO2*%~!*=HOI+g2e7Yb$7U%zBES+RG6EXVsN2?zBa_$*G#dXyI(FTCK`v`+1U zV){<$Mww~+%~Egs6J!dfWww3UP!n>%Q26V;$6qcAoih@$E6WzNcPyA>#b>quZOXA2 zn^gI)nFl0KF7Hyfc)W<~ic>+@mGi2qpDK^&Z>SNhTov!+y*;OGtMa6zpPL%$R>eD> zZt(H@uPOeK$I-j$-@Ns=wllu7Y@Eh7vqm>r*z@MRpH@+MCsOp4%p>=)N~!G7eRVbN z<|-+niPk#&PJO~x7}}hLey;Q2ahgG*YyGj5h{ z-mw1#?;mZxBl)w!pTBp~yFTT3eZ{T1SMj%#*B$+I|Fr&;%=m;4<=%UN*@wZ?)z4*} HQ$iB}s|Y{= diff --git a/app/src/main/res/drawable/com1314080901103_button_recorder.xml b/app/src/main/res/drawable/com1314080901103_button_recorder.xml deleted file mode 100644 index 45657bdf..00000000 --- a/app/src/main/res/drawable/com1314080901103_button_recorder.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml b/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml deleted file mode 100644 index c14d9297..00000000 --- a/app/src/main/res/drawable/com1314080901103_button_recorder_normal.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_cancel.png b/app/src/main/res/drawable/com1314080901103_cancel.png deleted file mode 100644 index 3d0d6f3dbcb9cb4e9477b7e8f56aa29fea51f74a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1858 zcmeHHc{~#e0AB7RJ+WN%lN`lMJmktzM9j2^@Z36FWgDZlQE7V`jg)Ja7LO^y+()4v zo^6gP%+W9*+oLqovMemW_uu>b{oD8Zj{m>k_xm!uAZ|(uS_%LFKndjTa(*XQchn>& zx#J{fZx#R`A?xMo>ni?5Ev#IYT7v^>oc! z7r$iseA7g~YI|#U<_2i?{-J&_@9H(|A2DYSuPTg=6}Uf&by0dh60bdculYoi!M8!1 zN+DbV%KA-3=X(o%c}msnnXIIhE6wh$yhS1+eE)%qg~Uk5({BW|)tVaFjDaJe!Q|3u z^Q44bZR%W(+TA|>@BUAU6eq?T>VS(2r|$H29sIoFo6j^}|7sLXso6WHY-oQARYq!N zMD+szQVt*&C*K>al^LOrsuNIlwOoUKw^UH^P^$}4=LOuGR|<3jW_2PzP4=>rdHdS8 zA7U14ba^>b;K<3=l-DO4VeF{;(<@N(WM>^Y%)ji`F{_W~mj%mbK#gWHK6Tn=Xuoc4jcxVEka^ymeu!CzUbZ;%sGT(7|h=3V*`Asa<|x#&{`8(@t#i5F^y7}~C3bXb=je+YQF;9pwA1ib75_bi?ekR3QOec6)Y4dVq=iH8ct z-%17rRXfVQGd8WOIyOzWQm27Cnn=)>J=ER0Z=JH^CQ#y@d9}{L@l2z-%$Y3KDCl}e zN?PY!oPgWrGYfk%vUCJYnBj*AERKZ)t$H-fMt+xm)F*K?=_@56_e)mEmV#4)%zS9M zQ5z=ZKE=;y_>?1U0{+r%qH?UFES4Fq5DKv=;67;ZltLqu!FP8=aJJYsNYBI%l+CsPC^pos~w zNtFhLk3>8_(?%R?iK+6~J@KV)XJ)ZsZiPXis63<`O$=TppaU_L+&=jDE{*WiT{8d6 z-p>t&;%K5VgtWD-6cQoLL&&k;>`N&beQ5nrXR64r9=kAGUYp7f5j~KEYjbHi+`0x~ zI?f_M(6+BLW__rFiJXu3-J6oR<@vEKM<^w(ys`+AhJj6P*QGa$ImAt$GsfDGDVbuk zOU=yW@ux_q+Cu|92yPt8H28R=LkD#Ti0IbFS^?(cQca0X3v(|HjJI2j>DSTQRH#AE zuha9klLP&GQfoC^Gms8s;ayaFfi)~`mA$7>w&jEdTIXy(j@39xfVM~x6!p3~k;Wa! zWQG(zSqS1`ts)Eq?8)rX#UwbzpomvcA?$Wgk-=iKaZMZg(dGg6H`l`mZ>rLU!};^C zP23cFx-Qa64u>f$blve63v7_sjc~q*F{?KFN>vYF%yvu2TQ61~xZ2th&YwGnw;cit zl%$1Aire3okhrvB65*Tq2L{t1OdyS~mGl{0XSsU_1WG50>}qP={&@`Ba=4|gXV`Uc k<|J0aNm=SYe6YPKv9cIq5`^vkbLRm8AXkVB#W@`F1LU2TQvd(} diff --git a/app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png b/app/src/main/res/drawable/com1314080901103_chatto_bg_focused.9.png deleted file mode 100644 index 5888fc802bc493cc99168f982e5ad7f8c3826011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2336 zcmV+*3E%dKP)6vsgp5%3WY9|4A853?)-AArEFSy^h@Yb>42bcB2WOE$fn)SSw4EX}d0CW}l< zM<+{#)Tjs+SQKRiA><*3pt1-HE4w@d@pjLT^ILwit+c{#mu2_XcNTwM`~h&XLL1OZa}- zEO1#&l5dn;`K2sDSt)DgR7%a4w+B`5HP43NfU#M21B#2dVHQ$9&NQc3d5 zuae?Q9l3tJgWR}rqhF}BO3&H+j_qoaegx3`mP*RGM))>hKe($a4P_JZ2l+Gx;RCztA4$osoW4Nizk$T}FY@JBC! z6RZw?KqvUDBrs^^8z;!0s#?z2{s!9|XF$IS&o`21*Ph}WKu39c$bvn-)^>mp{9Z8R z`SrP^sG^aJa(jYqEa;zF(@GY9l-KD18hDh0#99t8q?)MMbU7F>`|TWZ?xN1_!3#%0 zO??X&a9j$C&-e&gck1=C&^V+TdrLFsI6zgZ#W^6WcJh+FqtOA*mQFXW z(s;!dXc$%k5b@2;%?>AU!20h>I-@^Uu@kshGWwm-yKd6>%+t{5nR2Z|g6DPqvW`5m z`Z(u+;p1h4EgAh>)Q3kOehwO2zNLWkz9Ykj6co3ukb@6gM2LRUZPZ7s{PQzt?1z*p zhX&6JIB=!aTuK*uG>Jb$_45?wV1Z6ukrqeUq)2UTqh{;dj*6PsJx$rF-hgD<9_yhf|LMz-ufZ>aH+B`Axe z@oCddi~{rE>vTFMGsVvbP&zNH_c!4H2H#TR=YwyOD?8!GDb_LgR?=-f{St^ z1kvthlxljmx5L02!_RD@d_t-27vy$toLC15pm(>mY##ipSFbWrsjuM86uDB5-~;h2 zcPLJ(H%l>248FMVgD}ku!4xC0$VnChZw#NSUhv2KKB$Mc(i!|-z#l2Nm(`OeVTdUY z{0F{Pt7W39u4%AN-HwOvXg_EOPGlJPo5HtD#ah6`=kDfT8e!lWdOh6X08 z%j$aTz!y%q47`=$!%~wr(gclF*Jv1gs`AP@9=_V*w-KXa)42yrbBojrK2=8EWjwJ; z&9>A%T*D3Y@aW|4ps~c{a#CMk@9=^nL*Nm*>@d8y<727o|J>UP56}N{DKxff>lp^0 z>XnaAbMPOWxAl2TzP-S`I^s5LL=Zpe7L=(S8hn0*h%b%{ltXSUJF`zRMb5#HNz>h7f}*ry&DFnN&_mR8X4vFr;(qtQ5= zQcqSHmYBf9#Ezz@&pPrikHDldX40ZvTcPn;^aoddakWE%FRQ3Al!#1OwD$`M6Fiaz4Fdhkry|d!si@+O`{y{rMg{^a$GC{ zpHDrWxSkDkb@iM`4LAXYJn`mna_FxTQc+Q1w>p|pO6I(Mf-e&}=@m3J0MBZ+Ag|G2Qqh2M((ExBju+P}YrzgFD^f0i%^?eSCXJi%&IXCZ4Q`Nx2`bV21qD%VPF8w9UzmP` z4)DTtZXiYl7&(OsCM3A@1;)>$dXj3EK(lQ`ygg5%osXg2kyv3o5mt9NxsJmAdYY)s zvC3!c0C${pd~n$nh!FzSxf9U%V9b@1ZCH~qtvrmQcs%xF432K&VpkWZKK!FKdSFHMn*9}+zP}?3=IvJk%K{cp=QK@%p}Tk0|NsupymbST8alR0GW-` zVh0BY7NDYX8d!{u%RzQwH~=USM+eJcQ4@n=xv8nCEG2PGPTJ7d*Owj;-(w90pg`{c zIG`Jz&w&Dq=VN^Oj)4u-dB`o{{()?e zfE - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901103_recorder.png b/app/src/main/res/drawable/com1314080901103_recorder.png deleted file mode 100644 index e12231f820df016a97eed2eda0cca98f648cc434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1839 zcmeH{**6;q6vkr-lGavY9byeNmX^}0T`i5B*q5oc(~7kkRi;%W_J|Qt$}kNh=_#$W zO$CD%rPdHdL}QD+jjhyDOBr+KW&VaabIg06-Xi*~a78 z@s2=X(~;knaS4fs zJ<%sXe7k#C+eS}hzx?=UHK9UNQxcqJUG8>72>ems`(^{^b_j*;JMFK_tzw2>CX77q zM?L0t_bX>>YOrRt&+8Gj%MVNiUro}Mx(NP0oLKBqfU8H?8;0y^x;4QrO}>;9rL7X` zRpV|RC&9NP{Y!qt>Vi%xJdJR~2&faciyYH}1X>n(DaB5W_KQsF-qu)`ln|Nk9W#po zJwlPuj^A30sr7!T2op7Q+y*8N&bzh%T+3^laI9Bf3`IgM>OH~n78VySf$MS5KwV%$ zGPLwGaCt!x`j8jKYkdYIjtk~jm1z~S`zM+Jw<{Byx%qsx^a2kEdWwt&%LXq6o+ckw zdfiB_jv+ss+L&dFj55Ann(&Vhq|-*l{yl(mBoqkh_L|{1XjaegB653`*QKVUG|k$X z8x_vRkwSR9ZV#Oy^_v>0{iYJx+P zSCU+Z6)ZYMeJtI0`Xo-is3iwKVZ#@awj#5rG|cc03 zI!xkQhfzbkvo|{s#9n+-ngHrseM7e|6aXrSaSR9$ zgsLo!j%4||jy_FVx+t9Kw-{wfO5H`i$ag{I+u6`D=R@bD3@!`;)$2mrd!urPtDEDL z1|e51`bdqi&m#=Aiiq*#@K$LNYD|G*L({!21|uB3wLM7oYKuu8vkz%_mOoDhVLkwb3FN#ExqE$wBPMJ%p$a zJ}X*VH&R~Fsmt2cy&J(gNL6tqHX|c^S9(KiDRxsYqxbC~yWC>OnAZIiGpxZL+mAX2 zVL4oE))J|DV>sM|Xa5iu=~K$8TN7@jKH**wW!o~H<1jmKlMsdO?s)1rAz`z-+jBEeV|ReY-{Q$n49N#$k(P9SYQ_kj9mI-@pU||K`Cl d7Pjg(C4@j$rkRzwd&h(Xz-?V@DAvK4zW^5Hb?*QG diff --git a/app/src/main/res/drawable/com1314080901103_v1.png b/app/src/main/res/drawable/com1314080901103_v1.png deleted file mode 100644 index 9ca1a7336c7e97ad347966f1a13c3d2e9e3203ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQpN#3A+G;P2TuiFxC6BdmIV0) zGyIR#{K|ZCW`@OI?i(vAJS1W~SC|4NV?A9QLn>~)y?T$?V zt@2tRuYGnJ6HpZjII#M6Nbo~D5xHXlJC^3zEIm}LwWsCKYca0(D;X_=9vX}83wn54 dnwjCpRQB3%#*^E>wXuNod%F6$taD0e0ssOpwqAQn3L(A+G;v3G8zp90yt?UlQaO z%<#X)NBY(7?r80AET?8=TSaPqWj;AG!{RUZjTIFh5~jIdbAU?QJzX3_DsH{Kc08Av zk%!^n=1o&`Jo!%joxYOqORS8+46n-XDb3*r-xRA zw%RZLP$k^D{pzz@p$}_C{}r8Tm{>dWe&`Q@*8b%he}d2c*v|Do^x=Pvntd)0v$s0r mh5m?Zl@I;#vWJnO=M?u>cb3jSY7aa>)_A)5xvXOpwqAQtbggA+G-i2M`MPZU#C@wj(^8fB zAdh*vIEGZ*dV9^?&)HGH!LgZ9T6oThlPr^W{{Lygr2XZ~(pB7hT>E#Wn=k=Y!@!Sv z>-t-34?Wh}Bi{O*f6<2}RWX;fY9dtK?_6={wAP-k zL$9-r0j2kF#fLmRtx;1d+nT@XY-x1s`&A$I27}c73}`hE{P9tf%Rbz=ZsnodT7RTk w@84Ve!F{WP-RckFqW{(%vOg!maA3h7CWhS{PLIT9ih`Wu>FVdQ&MBb@0CesI761SM diff --git a/app/src/main/res/drawable/com1314080901103_v4.png b/app/src/main/res/drawable/com1314080901103_v4.png deleted file mode 100644 index 2f341e663dae832b2912a32ebf4070b629ff1ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQX2z&LR|k3H88LHtt-&+)+IrH z!3_ToOh_>J#ddyvfrG%k_4V`e?EdlJU0drX`(|%%Y>kiftKHqv+TU1C&C0fl)cneP za%P6bU+x<#Dm)~Z9d>5|jk)IO;uunK>+LmDK4(WBhKmNqKydee!pq>L(zTiQSeM20+#x$&cuf}B zpuO3p^>oM%rqJ}V|x>(1gswby4ZX^5T4tYx$0kg|r& zvU?Ryt;<6y+*+RpRBUWHq@7i?cIAgQuKd{4Nlay_?^b+}Lnp}FY49mjw!WqQgjF^A{t(nIyffj(sLboFyt=akR{0Da6tX8-^I diff --git a/app/src/main/res/drawable/com1314080901103_v5.png b/app/src/main/res/drawable/com1314080901103_v5.png deleted file mode 100644 index 6f75e9c5aef39df340e73d09fe775b064a954fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQV#=sLR|k3caUlG|18k6-X%eP z!3_U}A8%?3R{qF%a8i=dZ}y7|4@^if_{Da9eu0C)z4i6;^6dWc-(6elC;Mh^Z)}Z^ z^sC+7(c0fwPR+`;iq!ndd~#-n#b53lD=IuBjQcl-GcYjndAc};RNQ)dE#1$_QN$t9 zfyHrxmY7SG_?iw`SC`cP+(q2~6f9>xsgbs*oLO0%ucG8RNdtH2Et3KKLPz=sBl{%`zhAf}IyVu$d}yqbhpIAyuuIWrx}Wb`-I+ z_OFbtb!zorSumArzT-owuPO6_AMR524N8bkYvwXvS-{P;-8x{0ckDVj(RaZQ8Aaus z9twUf>RtJPRdk-kIThAzseUUzsEY1uI&}StiAmaS4@9Bk;^{t zVY>UwB?q>h5!d>|)p}nn;Ky96$NXA*mK>TNQ1O+u_4*a&Prj}7D?aFp-m^Fc^iOpwrLU|I4Q~KH~Ynf2PPyK{9-#lzraD@ z-un7^d3OK!@2;)&lYO(dH@3z{`ql34Xzgz-r)FhaMQVO!J~=bP;xG4&6%`&5?<214 z2F8Jfr;B4q#jUs3UYa!}ia0!MQBp~s=`^!_isH!$0Vk&@9{L;Kk^LciefiqG`41x3 zet$hjxO2u#2-x`b?|Kc^@6I0%D6kw~Vcr+~L4cJ%xPYn2eFdYD*TH0wIZGZCa`^e~ z2sx{>;d7Z#)AAMZHogaqMQpqeW^$Z6zzLwQ)9^wjQ?uJ`aa-;9_xF@4|b+T+#)p(yo@&=Sa(K=b-Kn6fu{aG z#UCxdcAOHa@j58VW!L;b%XH^C%^yuo`myP0VmGE%x*jy;+Sm5L>gzFcks9xVaqvyTy-T=XGSK3KNDuPcmCkb-W0#myl(M>a;|?358kP>)CV#zaX)xp nkjg2=i_{HqKPnzxa#(A2+sABMR^>bP0l+XkK^o-<_ diff --git a/app/src/main/res/drawable/com1314080901103_v7.png b/app/src/main/res/drawable/com1314080901103_v7.png deleted file mode 100644 index 26c21a8fc4ba4dc4925bfcb2fcb2f720a00a9d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwrLU|_Th@CkAKKME)afu)=J9s&b2 zt0c%TnBo769Ub8sUzm^2NH_n(b$xl6TdEo7)g`5_qEEKAgs6OC5`Mg?DOmX<$A5Qit)J|hy}hwDKGLstcSmb~V>vY|+bUA? z>&clJ7Js>Ktf=si@R7UJ3XH!5PZ!6Kid%25g$6Mv3NSo;;MmmiU|r*bcXCWBJ9fYR ztA9XJLvGiA3$L8BvwU*P|b0<8SOA2?Y0`y4-5 zY*kUavph}gMy0jq!C(;^--E^iHrDJ1KVJ#o>u|7JWRJ_i(*k>(de4M%#T74|8JQ6N z%!)NX;DZ`V{!+z?*}rxeiR^JcxLafo`@zVpqNf@a^PBi%(t+kpt@JqPE>gpDQ2mOv z-O>lfTz1PJaC7Y2)AS%atLSdP2VK_tJ5Qa_*`WP-UX#4S4@0hl{#UH)mOT*Xs%w3) vy`1CU0=5(Cto4B(%vt~MICcgInqG;QNhu#^FRHZ$#xR4YtDnm{r-UW|$z?4V diff --git a/app/src/main/res/drawable/com1314080901103_v_anim1.png b/app/src/main/res/drawable/com1314080901103_v_anim1.png deleted file mode 100644 index 044965e8f66168fda12575adc6c17082f538e6f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2KG1AIbU{|{~;ye9V#(5a>+L4Lsu zvhJ!CzyJT6&1jRzdTnL#bhg(&jiOT4O?&%>Pi}%qsC~HPj8`8;maS$9ZhQFR9rMW} ze5ehG`>*nZWk{YIXDuDw#l1pdB@tJ<^NbJicf z=O>i1+^XUj+j&v_2b_U>QY?b@Bvq`fV9q~!?eX1t51ae^j9dDDa#}0SnJXH9V^{Lg w@V5N&e&=6JwohiN^?j?lt)38h&HpPS4?l=*z zS*z2p_g|+-c-j8|##w@=i(`n#@wd~iM;&qyXcfN5+PdOKK*)h6*^SB0Avzj2Hh%y0 zuV0}$O~1%;=4;#V;(hu5&P+S0(wCf?sygwuNY=DXx~mp$=;_S}+uC(wo5q6~EnjaP zEGzMPU=eXuHF0`M+BFRL>{hS+W$*_S~smP z^X(hU@+!Hm+a{s*xtfwQX1a*J`gC;l>7KSbFOu`#?Y+9`)-PelBdsM@*d?^RC*Lgl zqV)djlvBoY!`5tGRawXXV-{m$(^c%EcQ6NfZd5Hr5qIzzDc-a`piF7-(dKvG>VwUGCA2)2iJ$-|i{tfq9!2(a?z(kc_Gm{puHJ$$S z%WJ;dzOEmp%U++j{FV34%S*Zw#axnn%vE_VeAT@pdFABCrA6!h=084Jy)Rdv`A)G& zc~t4Axh+aUn{7YG-r2ca_eRH^^eP4^r3#Jp+FMvlBi!61+7z}6hcLM{OZ}Ya!}EFB zrVXNUmrDiLZcvxn$=kW1cDBvZt+Gqr{`66{cYox1Xx76*b_RXZB1@t5AwQ)jo1B}v z(7|c%yWYLiIy+CcH12uGWu_|SUfO+omRn8RO7Z`u*2jNrbC0*Z@Az$%WF`Nfgr#4$ zYKB_$8OfDv@;k}B2zYAZ|7eT%&Y#L}{JY&}bN+UiWco|zoW91oe}A5?KL54ziS(P5 zCm!if6!BxbZ@c008NY(RUpm(rPP&}_l0)2d)9Po5{|%&n_}2*3OUhN%d+)puFz?Uf k%wO4c5&aR`xi@dy3z|gPrw2mdKI;Vst03R1_(*OVf diff --git a/app/src/main/res/drawable/com1314080901103_voice_to_short.png b/app/src/main/res/drawable/com1314080901103_voice_to_short.png deleted file mode 100644 index 9ed0dc11eeba48e4cce25202ddcf547709615d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 zcmeHH{Xf$Q9RKdoGR&RFW^HpRI+sRCr93Ph%R?f}ti@e)s%d$68Ah9Fi&}bcmWMob zo^F^cY$w%(B=R&JCF>h$lW38e>s~sq`|bXPd)?>tet$l{zaKu?fdSrz`dEDc01PQU zUO}r@yUHdMY;|8JAAAM?kcmLQL;Jq`KmT0?PBQ;IzUp^rVo*RZU~}X`^xL#?4Whf|h9L83B-ss*gS}Lg7N)p3o12U^=Us_E6=;v{@2k%~w{H^O zQC`ORN_5|NB+6AOspFjq`DU#w=5lgI#K54hycKz%g=npZ8oEu$88>*=6xESf3jlBw z#mn;$``O&Y=Lmz-rrqza)>jpo&XkxjXIf|T=fkq|A0}PSi`X0#R9@%$yO&Q3`HV!k zv^(^1-={uIhIYB+(;01QjI3a1Lg9uhHk2ziqVwVE9MO4~3pzP9jBL=l-Eq@Xoh0v< zCB^d*!`KIf!!A`7sV>o$RnaE}uVP}Nt<0m}X$uUa?Qr*j%HFW)!~u?86ctJ#F*46sX0 zv~B=PWWq88#-`vGNbs5@XafQm-3hS(xU<)}vr7fGCYa;8?%g07g-b^c& z1MBg1X@0tHWug(wLF@NXbEH|&+?w|Ffsr!oTLJX5cZf>Cv?GaX6+coLtv8^#e4gzg za1E(3zAi)$Ij=lcW)>TSD1pO*B}P`Xq2}4fayPv^a<6u$=XR93|d-To2^UA1=lnvvoYjp4BQHVNsC zEqj+6Kfz*SsNo){$&oUQw8v7)#*ez1Znt`$C5g(Fc6C%5YaAKWCTwSQWJd0-4>V=P zhN9?RU{aX+G>+MGR=t$b469D(!z^YNAMky0N*Cw?m~3{jFyALCjig#ApX~NkBL2GP zA{qCl-FBztD2GWnd9VzPd6zuy+e^fat;}s>ThOp7e2~<62Rfm1>#^y>bS_-Up-Qds z2d~adhw6y!Ek~W?bU41VXwUJUaN^ti{2PLZ*oKt*TQqAKJz50WzN3V=+S7mG>qK|p X+UP9CTAE$6`n~|lz5uTVa%AS;sVFFc diff --git a/app/src/main/res/drawable/com1314080901103_xy.png b/app/src/main/res/drawable/com1314080901103_xy.png deleted file mode 100644 index 88b90f194d84264133295304fd60413ba8a41b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6201 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 From 287ddd03abbde77ba4083cbe0c02434021ba2cf1 Mon Sep 17 00:00:00 2001 From: baijihui416 <253759872@qq.com> Date: Wed, 8 Jun 2016 16:50:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?#88=20#90=20#94=20#95=20#181=20=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=A8=E9=83=A8=E5=AE=9E=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/drawable/com1314080901101_adj.png | Bin 0 -> 1362 bytes .../com1314080901101_button_recorder.xml | 6 ++++++ .../com1314080901101_button_recorder_normal.xml | 6 ++++++ .../res/drawable/com1314080901101_cancel.png | Bin 0 -> 1858 bytes .../com1314080901101_chatto_bg_focused.9.png | Bin 0 -> 2336 bytes .../com1314080901101_dialog_loading_bg.9.png | Bin 0 -> 267 bytes .../res/drawable/com1314080901101_play_anim.xml | 6 ++++++ .../res/drawable/com1314080901101_recorder.png | Bin 0 -> 1839 bytes .../main/res/drawable/com1314080901101_v1.png | Bin 0 -> 242 bytes .../main/res/drawable/com1314080901101_v2.png | Bin 0 -> 340 bytes .../main/res/drawable/com1314080901101_v3.png | Bin 0 -> 441 bytes .../main/res/drawable/com1314080901101_v4.png | Bin 0 -> 531 bytes .../main/res/drawable/com1314080901101_v5.png | Bin 0 -> 651 bytes .../main/res/drawable/com1314080901101_v6.png | Bin 0 -> 757 bytes .../main/res/drawable/com1314080901101_v7.png | Bin 0 -> 857 bytes .../res/drawable/com1314080901101_v_anim1.png | Bin 0 -> 454 bytes .../res/drawable/com1314080901101_v_anim2.png | Bin 0 -> 845 bytes .../res/drawable/com1314080901101_v_anim3.png | Bin 0 -> 1341 bytes .../drawable/com1314080901101_voice_to_short.png | Bin 0 -> 1749 bytes .../main/res/drawable/com1314080901101_xy.png | Bin 0 -> 6201 bytes 20 files changed, 18 insertions(+) create mode 100644 app/src/main/res/drawable/com1314080901101_adj.png create mode 100644 app/src/main/res/drawable/com1314080901101_button_recorder.xml create mode 100644 app/src/main/res/drawable/com1314080901101_button_recorder_normal.xml create mode 100644 app/src/main/res/drawable/com1314080901101_cancel.png create mode 100644 app/src/main/res/drawable/com1314080901101_chatto_bg_focused.9.png create mode 100644 app/src/main/res/drawable/com1314080901101_dialog_loading_bg.9.png create mode 100644 app/src/main/res/drawable/com1314080901101_play_anim.xml create mode 100644 app/src/main/res/drawable/com1314080901101_recorder.png create mode 100644 app/src/main/res/drawable/com1314080901101_v1.png create mode 100644 app/src/main/res/drawable/com1314080901101_v2.png create mode 100644 app/src/main/res/drawable/com1314080901101_v3.png create mode 100644 app/src/main/res/drawable/com1314080901101_v4.png create mode 100644 app/src/main/res/drawable/com1314080901101_v5.png create mode 100644 app/src/main/res/drawable/com1314080901101_v6.png create mode 100644 app/src/main/res/drawable/com1314080901101_v7.png create mode 100644 app/src/main/res/drawable/com1314080901101_v_anim1.png create mode 100644 app/src/main/res/drawable/com1314080901101_v_anim2.png create mode 100644 app/src/main/res/drawable/com1314080901101_v_anim3.png create mode 100644 app/src/main/res/drawable/com1314080901101_voice_to_short.png create mode 100644 app/src/main/res/drawable/com1314080901101_xy.png diff --git a/app/src/main/res/drawable/com1314080901101_adj.png b/app/src/main/res/drawable/com1314080901101_adj.png new file mode 100644 index 0000000000000000000000000000000000000000..3cfd3cdfc6d241721ee29902c91e6ead69ebe667 GIT binary patch literal 1362 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$ycOUR;`;ypf9HA9qiFbrz#aF! zTENJjR}$nG%)sEh?P3Rq-=F`BoPKhfe&7*#xPo!(iL6VqpP$LB{cW3a?qp1TWANeg zERh@kS*UzmcFamzD?Ykt$MdP~svgDHDrSrQeaXb^W|J5`$8{&`$_cZk3q82Y_S&d7 ziqC7^w7$%@Z!F8JZV)2gdLBxmRw<% z(Dt5uv+Rq~`>#_@8P5${vw2nJpYY?J3=B-2o-U3d9>?EKOOFCV=lQlF%Xy7#9uM)0%#1fqBHk-X<-Pr@jT|?H19T zcNVDyAAh)3X6-7r>nl#GO2*%~!*=HOI+g2e7Yb$7U%zBES+RG6EXVsN2?zBa_$*G#dXyI(FTCK`v`+1U zV){<$Mww~+%~Egs6J!dfWww3UP!n>%Q26V;$6qcAoih@$E6WzNcPyA>#b>quZOXA2 zn^gI)nFl0KF7Hyfc)W<~ic>+@mGi2qpDK^&Z>SNhTov!+y*;OGtMa6zpPL%$R>eD> zZt(H@uPOeK$I-j$-@Ns=wllu7Y@Eh7vqm>r*z@MRpH@+MCsOp4%p>=)N~!G7eRVbN z<|-+niPk#&PJO~x7}}hLey;Q2ahgG*YyGj5h{ z-mw1#?;mZxBl)w!pTBp~yFTT3eZ{T1SMj%#*B$+I|Fr&;%=m;4<=%UN*@wZ?)z4*} HQ$iB}s|Y{= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_button_recorder.xml b/app/src/main/res/drawable/com1314080901101_button_recorder.xml new file mode 100644 index 00000000..45657bdf --- /dev/null +++ b/app/src/main/res/drawable/com1314080901101_button_recorder.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901101_button_recorder_normal.xml b/app/src/main/res/drawable/com1314080901101_button_recorder_normal.xml new file mode 100644 index 00000000..c14d9297 --- /dev/null +++ b/app/src/main/res/drawable/com1314080901101_button_recorder_normal.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901101_cancel.png b/app/src/main/res/drawable/com1314080901101_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0d6f3dbcb9cb4e9477b7e8f56aa29fea51f74a GIT binary patch literal 1858 zcmeHHc{~#e0AB7RJ+WN%lN`lMJmktzM9j2^@Z36FWgDZlQE7V`jg)Ja7LO^y+()4v zo^6gP%+W9*+oLqovMemW_uu>b{oD8Zj{m>k_xm!uAZ|(uS_%LFKndjTa(*XQchn>& zx#J{fZx#R`A?xMo>ni?5Ev#IYT7v^>oc! z7r$iseA7g~YI|#U<_2i?{-J&_@9H(|A2DYSuPTg=6}Uf&by0dh60bdculYoi!M8!1 zN+DbV%KA-3=X(o%c}msnnXIIhE6wh$yhS1+eE)%qg~Uk5({BW|)tVaFjDaJe!Q|3u z^Q44bZR%W(+TA|>@BUAU6eq?T>VS(2r|$H29sIoFo6j^}|7sLXso6WHY-oQARYq!N zMD+szQVt*&C*K>al^LOrsuNIlwOoUKw^UH^P^$}4=LOuGR|<3jW_2PzP4=>rdHdS8 zA7U14ba^>b;K<3=l-DO4VeF{;(<@N(WM>^Y%)ji`F{_W~mj%mbK#gWHK6Tn=Xuoc4jcxVEka^ymeu!CzUbZ;%sGT(7|h=3V*`Asa<|x#&{`8(@t#i5F^y7}~C3bXb=je+YQF;9pwA1ib75_bi?ekR3QOec6)Y4dVq=iH8ct z-%17rRXfVQGd8WOIyOzWQm27Cnn=)>J=ER0Z=JH^CQ#y@d9}{L@l2z-%$Y3KDCl}e zN?PY!oPgWrGYfk%vUCJYnBj*AERKZ)t$H-fMt+xm)F*K?=_@56_e)mEmV#4)%zS9M zQ5z=ZKE=;y_>?1U0{+r%qH?UFES4Fq5DKv=;67;ZltLqu!FP8=aJJYsNYBI%l+CsPC^pos~w zNtFhLk3>8_(?%R?iK+6~J@KV)XJ)ZsZiPXis63<`O$=TppaU_L+&=jDE{*WiT{8d6 z-p>t&;%K5VgtWD-6cQoLL&&k;>`N&beQ5nrXR64r9=kAGUYp7f5j~KEYjbHi+`0x~ zI?f_M(6+BLW__rFiJXu3-J6oR<@vEKM<^w(ys`+AhJj6P*QGa$ImAt$GsfDGDVbuk zOU=yW@ux_q+Cu|92yPt8H28R=LkD#Ti0IbFS^?(cQca0X3v(|HjJI2j>DSTQRH#AE zuha9klLP&GQfoC^Gms8s;ayaFfi)~`mA$7>w&jEdTIXy(j@39xfVM~x6!p3~k;Wa! zWQG(zSqS1`ts)Eq?8)rX#UwbzpomvcA?$Wgk-=iKaZMZg(dGg6H`l`mZ>rLU!};^C zP23cFx-Qa64u>f$blve63v7_sjc~q*F{?KFN>vYF%yvu2TQ61~xZ2th&YwGnw;cit zl%$1Aire3okhrvB65*Tq2L{t1OdyS~mGl{0XSsU_1WG50>}qP={&@`Ba=4|gXV`Uc k<|J0aNm=SYe6YPKv9cIq5`^vkbLRm8AXkVB#W@`F1LU2TQvd(} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_chatto_bg_focused.9.png b/app/src/main/res/drawable/com1314080901101_chatto_bg_focused.9.png new file mode 100644 index 0000000000000000000000000000000000000000..5888fc802bc493cc99168f982e5ad7f8c3826011 GIT binary patch literal 2336 zcmV+*3E%dKP)6vsgp5%3WY9|4A853?)-AArEFSy^h@Yb>42bcB2WOE$fn)SSw4EX}d0CW}l< zM<+{#)Tjs+SQKRiA><*3pt1-HE4w@d@pjLT^ILwit+c{#mu2_XcNTwM`~h&XLL1OZa}- zEO1#&l5dn;`K2sDSt)DgR7%a4w+B`5HP43NfU#M21B#2dVHQ$9&NQc3d5 zuae?Q9l3tJgWR}rqhF}BO3&H+j_qoaegx3`mP*RGM))>hKe($a4P_JZ2l+Gx;RCztA4$osoW4Nizk$T}FY@JBC! z6RZw?KqvUDBrs^^8z;!0s#?z2{s!9|XF$IS&o`21*Ph}WKu39c$bvn-)^>mp{9Z8R z`SrP^sG^aJa(jYqEa;zF(@GY9l-KD18hDh0#99t8q?)MMbU7F>`|TWZ?xN1_!3#%0 zO??X&a9j$C&-e&gck1=C&^V+TdrLFsI6zgZ#W^6WcJh+FqtOA*mQFXW z(s;!dXc$%k5b@2;%?>AU!20h>I-@^Uu@kshGWwm-yKd6>%+t{5nR2Z|g6DPqvW`5m z`Z(u+;p1h4EgAh>)Q3kOehwO2zNLWkz9Ykj6co3ukb@6gM2LRUZPZ7s{PQzt?1z*p zhX&6JIB=!aTuK*uG>Jb$_45?wV1Z6ukrqeUq)2UTqh{;dj*6PsJx$rF-hgD<9_yhf|LMz-ufZ>aH+B`Axe z@oCddi~{rE>vTFMGsVvbP&zNH_c!4H2H#TR=YwyOD?8!GDb_LgR?=-f{St^ z1kvthlxljmx5L02!_RD@d_t-27vy$toLC15pm(>mY##ipSFbWrsjuM86uDB5-~;h2 zcPLJ(H%l>248FMVgD}ku!4xC0$VnChZw#NSUhv2KKB$Mc(i!|-z#l2Nm(`OeVTdUY z{0F{Pt7W39u4%AN-HwOvXg_EOPGlJPo5HtD#ah6`=kDfT8e!lWdOh6X08 z%j$aTz!y%q47`=$!%~wr(gclF*Jv1gs`AP@9=_V*w-KXa)42yrbBojrK2=8EWjwJ; z&9>A%T*D3Y@aW|4ps~c{a#CMk@9=^nL*Nm*>@d8y<727o|J>UP56}N{DKxff>lp^0 z>XnaAbMPOWxAl2TzP-S`I^s5LL=Zpe7L=(S8hn0*h%b%{ltXSUJF`zRMb5#HNz>h7f}*ry&DFnN&_mR8X4vFr;(qtQ5= zQcqSHmYBf9#Ezz@&pPrikHDldX40ZvTcPn;^aoddakWE%FRQ3Al!#1OwD$`M6Fiaz4Fdhkry|d!si@+O`{y{rMg{^a$GC{ zpHDrWxSkDkb@iM`4LAXYJn`mna_FxTQc+Q1w>p|pO6I(Mf-e&}=@m3J0MBZ+Ag|G2Qqh2M((ExBju+P}YrzgFD^f0i%^?eSCXJi%&IXCZ4Q`Nx2`bV21qD%VPF8w9UzmP` z4)DTtZXiYl7&(OsCM3A@1;)>$dXj3EK(lQ`ygg5%osXg2kyv3o5mt9NxsJmAdYY)s zvC3!c0C${pd~n$nh!FzSxf9U%V9b@1ZCH~qtvrmQcs%xF432K&VpkWZKK!FKdSFHMn*9}+zP}?3=IvJk%K{cp=QK@%p}Tk0|NsupymbST8alR0GW-` zVh0BY7NDYX8d!{u%RzQwH~=USM+eJcQ4@n=xv8nCEG2PGPTJ7d*Owj;-(w90pg`{c zIG`Jz&w&Dq=VN^Oj)4u-dB`o{{()?e zfE + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/com1314080901101_recorder.png b/app/src/main/res/drawable/com1314080901101_recorder.png new file mode 100644 index 0000000000000000000000000000000000000000..e12231f820df016a97eed2eda0cca98f648cc434 GIT binary patch literal 1839 zcmeH{**6;q6vkr-lGavY9byeNmX^}0T`i5B*q5oc(~7kkRi;%W_J|Qt$}kNh=_#$W zO$CD%rPdHdL}QD+jjhyDOBr+KW&VaabIg06-Xi*~a78 z@s2=X(~;knaS4fs zJ<%sXe7k#C+eS}hzx?=UHK9UNQxcqJUG8>72>ems`(^{^b_j*;JMFK_tzw2>CX77q zM?L0t_bX>>YOrRt&+8Gj%MVNiUro}Mx(NP0oLKBqfU8H?8;0y^x;4QrO}>;9rL7X` zRpV|RC&9NP{Y!qt>Vi%xJdJR~2&faciyYH}1X>n(DaB5W_KQsF-qu)`ln|Nk9W#po zJwlPuj^A30sr7!T2op7Q+y*8N&bzh%T+3^laI9Bf3`IgM>OH~n78VySf$MS5KwV%$ zGPLwGaCt!x`j8jKYkdYIjtk~jm1z~S`zM+Jw<{Byx%qsx^a2kEdWwt&%LXq6o+ckw zdfiB_jv+ss+L&dFj55Ann(&Vhq|-*l{yl(mBoqkh_L|{1XjaegB653`*QKVUG|k$X z8x_vRkwSR9ZV#Oy^_v>0{iYJx+P zSCU+Z6)ZYMeJtI0`Xo-is3iwKVZ#@awj#5rG|cc03 zI!xkQhfzbkvo|{s#9n+-ngHrseM7e|6aXrSaSR9$ zgsLo!j%4||jy_FVx+t9Kw-{wfO5H`i$ag{I+u6`D=R@bD3@!`;)$2mrd!urPtDEDL z1|e51`bdqi&m#=Aiiq*#@K$LNYD|G*L({!21|uB3wLM7oYKuu8vkz%_mOoDhVLkwb3FN#ExqE$wBPMJ%p$a zJ}X*VH&R~Fsmt2cy&J(gNL6tqHX|c^S9(KiDRxsYqxbC~yWC>OnAZIiGpxZL+mAX2 zVL4oE))J|DV>sM|Xa5iu=~K$8TN7@jKH**wW!o~H<1jmKlMsdO?s)1rAz`z-+jBEeV|ReY-{Q$n49N#$k(P9SYQ_kj9mI-@pU||K`Cl d7Pjg(C4@j$rkRzwd&h(Xz-?V@DAvK4zW^5Hb?*QG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_v1.png b/app/src/main/res/drawable/com1314080901101_v1.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca1a7336c7e97ad347966f1a13c3d2e9e3203ee GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQpN#3A+G;P2TuiFxC6BdmIV0) zGyIR#{K|ZCW`@OI?i(vAJS1W~SC|4NV?A9QLn>~)y?T$?V zt@2tRuYGnJ6HpZjII#M6Nbo~D5xHXlJC^3zEIm}LwWsCKYca0(D;X_=9vX}83wn54 dnwjCpRQB3%#*^E>wXuNod%F6$taD0e0ssOpwqAQn3L(A+G;v3G8zp90yt?UlQaO z%<#X)NBY(7?r80AET?8=TSaPqWj;AG!{RUZjTIFh5~jIdbAU?QJzX3_DsH{Kc08Av zk%!^n=1o&`Jo!%joxYOqORS8+46n-XDb3*r-xRA zw%RZLP$k^D{pzz@p$}_C{}r8Tm{>dWe&`Q@*8b%he}d2c*v|Do^x=Pvntd)0v$s0r mh5m?Zl@I;#vWJnO=M?u>cb3jSY7aa>)_A)5xvXOpwqAQtbggA+G-i2M`MPZU#C@wj(^8fB zAdh*vIEGZ*dV9^?&)HGH!LgZ9T6oThlPr^W{{Lygr2XZ~(pB7hT>E#Wn=k=Y!@!Sv z>-t-34?Wh}Bi{O*f6<2}RWX;fY9dtK?_6={wAP-k zL$9-r0j2kF#fLmRtx;1d+nT@XY-x1s`&A$I27}c73}`hE{P9tf%Rbz=ZsnodT7RTk w@84Ve!F{WP-RckFqW{(%vOg!maA3h7CWhS{PLIT9ih`Wu>FVdQ&MBb@0CesI761SM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_v4.png b/app/src/main/res/drawable/com1314080901101_v4.png new file mode 100644 index 0000000000000000000000000000000000000000..2f341e663dae832b2912a32ebf4070b629ff1ebf GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQX2z&LR|k3H88LHtt-&+)+IrH z!3_ToOh_>J#ddyvfrG%k_4V`e?EdlJU0drX`(|%%Y>kiftKHqv+TU1C&C0fl)cneP za%P6bU+x<#Dm)~Z9d>5|jk)IO;uunK>+LmDK4(WBhKmNqKydee!pq>L(zTiQSeM20+#x$&cuf}B zpuO3p^>oM%rqJ}V|x>(1gswby4ZX^5T4tYx$0kg|r& zvU?Ryt;<6y+*+RpRBUWHq@7i?cIAgQuKd{4Nlay_?^b+}Lnp}FY49mjw!WqQgjF^A{t(nIyffj(sLboFyt=akR{0Da6tX8-^I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_v5.png b/app/src/main/res/drawable/com1314080901101_v5.png new file mode 100644 index 0000000000000000000000000000000000000000..6f75e9c5aef39df340e73d09fe775b064a954fed GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwqAQV#=sLR|k3caUlG|18k6-X%eP z!3_U}A8%?3R{qF%a8i=dZ}y7|4@^if_{Da9eu0C)z4i6;^6dWc-(6elC;Mh^Z)}Z^ z^sC+7(c0fwPR+`;iq!ndd~#-n#b53lD=IuBjQcl-GcYjndAc};RNQ)dE#1$_QN$t9 zfyHrxmY7SG_?iw`SC`cP+(q2~6f9>xsgbs*oLO0%ucG8RNdtH2Et3KKLPz=sBl{%`zhAf}IyVu$d}yqbhpIAyuuIWrx}Wb`-I+ z_OFbtb!zorSumArzT-owuPO6_AMR524N8bkYvwXvS-{P;-8x{0ckDVj(RaZQ8Aaus z9twUf>RtJPRdk-kIThAzseUUzsEY1uI&}StiAmaS4@9Bk;^{t zVY>UwB?q>h5!d>|)p}nn;Ky96$NXA*mK>TNQ1O+u_4*a&Prj}7D?aFp-m^Fc^iOpwrLU|I4Q~KH~Ynf2PPyK{9-#lzraD@ z-un7^d3OK!@2;)&lYO(dH@3z{`ql34Xzgz-r)FhaMQVO!J~=bP;xG4&6%`&5?<214 z2F8Jfr;B4q#jUs3UYa!}ia0!MQBp~s=`^!_isH!$0Vk&@9{L;Kk^LciefiqG`41x3 zet$hjxO2u#2-x`b?|Kc^@6I0%D6kw~Vcr+~L4cJ%xPYn2eFdYD*TH0wIZGZCa`^e~ z2sx{>;d7Z#)AAMZHogaqMQpqeW^$Z6zzLwQ)9^wjQ?uJ`aa-;9_xF@4|b+T+#)p(yo@&=Sa(K=b-Kn6fu{aG z#UCxdcAOHa@j58VW!L;b%XH^C%^yuo`myP0VmGE%x*jy;+Sm5L>gzFcks9xVaqvyTy-T=XGSK3KNDuPcmCkb-W0#myl(M>a;|?358kP>)CV#zaX)xp nkjg2=i_{HqKPnzxa#(A2+sABMR^>bP0l+XkK^o-<_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_v7.png b/app/src/main/res/drawable/com1314080901101_v7.png new file mode 100644 index 0000000000000000000000000000000000000000..26c21a8fc4ba4dc4925bfcb2fcb2f720a00a9d5f GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^6+pa&gBeI>OpwrLU|_Th@CkAKKME)afu)=J9s&b2 zt0c%TnBo769Ub8sUzm^2NH_n(b$xl6TdEo7)g`5_qEEKAgs6OC5`Mg?DOmX<$A5Qit)J|hy}hwDKGLstcSmb~V>vY|+bUA? z>&clJ7Js>Ktf=si@R7UJ3XH!5PZ!6Kid%25g$6Mv3NSo;;MmmiU|r*bcXCWBJ9fYR ztA9XJLvGiA3$L8BvwU*P|b0<8SOA2?Y0`y4-5 zY*kUavph}gMy0jq!C(;^--E^iHrDJ1KVJ#o>u|7JWRJ_i(*k>(de4M%#T74|8JQ6N z%!)NX;DZ`V{!+z?*}rxeiR^JcxLafo`@zVpqNf@a^PBi%(t+kpt@JqPE>gpDQ2mOv z-O>lfTz1PJaC7Y2)AS%atLSdP2VK_tJ5Qa_*`WP-UX#4S4@0hl{#UH)mOT*Xs%w3) vy`1CU0=5(Cto4B(%vt~MICcgInqG;QNhu#^FRHZ$#xR4YtDnm{r-UW|$z?4V literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_v_anim1.png b/app/src/main/res/drawable/com1314080901101_v_anim1.png new file mode 100644 index 0000000000000000000000000000000000000000..044965e8f66168fda12575adc6c17082f538e6f1 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2KG1AIbU{|{~;ye9V#(5a>+L4Lsu zvhJ!CzyJT6&1jRzdTnL#bhg(&jiOT4O?&%>Pi}%qsC~HPj8`8;maS$9ZhQFR9rMW} ze5ehG`>*nZWk{YIXDuDw#l1pdB@tJ<^NbJicf z=O>i1+^XUj+j&v_2b_U>QY?b@Bvq`fV9q~!?eX1t51ae^j9dDDa#}0SnJXH9V^{Lg w@V5N&e&=6JwohiN^?j?lt)38h&HpPS4?l=*z zS*z2p_g|+-c-j8|##w@=i(`n#@wd~iM;&qyXcfN5+PdOKK*)h6*^SB0Avzj2Hh%y0 zuV0}$O~1%;=4;#V;(hu5&P+S0(wCf?sygwuNY=DXx~mp$=;_S}+uC(wo5q6~EnjaP zEGzMPU=eXuHF0`M+BFRL>{hS+W$*_S~smP z^X(hU@+!Hm+a{s*xtfwQX1a*J`gC;l>7KSbFOu`#?Y+9`)-PelBdsM@*d?^RC*Lgl zqV)djlvBoY!`5tGRawXXV-{m$(^c%EcQ6NfZd5Hr5qIzzDc-a`piF7-(dKvG>VwUGCA2)2iJ$-|i{tfq9!2(a?z(kc_Gm{puHJ$$S z%WJ;dzOEmp%U++j{FV34%S*Zw#axnn%vE_VeAT@pdFABCrA6!h=084Jy)Rdv`A)G& zc~t4Axh+aUn{7YG-r2ca_eRH^^eP4^r3#Jp+FMvlBi!61+7z}6hcLM{OZ}Ya!}EFB zrVXNUmrDiLZcvxn$=kW1cDBvZt+Gqr{`66{cYox1Xx76*b_RXZB1@t5AwQ)jo1B}v z(7|c%yWYLiIy+CcH12uGWu_|SUfO+omRn8RO7Z`u*2jNrbC0*Z@Az$%WF`Nfgr#4$ zYKB_$8OfDv@;k}B2zYAZ|7eT%&Y#L}{JY&}bN+UiWco|zoW91oe}A5?KL54ziS(P5 zCm!if6!BxbZ@c008NY(RUpm(rPP&}_l0)2d)9Po5{|%&n_}2*3OUhN%d+)puFz?Uf k%wO4c5&aR`xi@dy3z|gPrw2mdKI;Vst03R1_(*OVf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_voice_to_short.png b/app/src/main/res/drawable/com1314080901101_voice_to_short.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed0dc11eeba48e4cce25202ddcf547709615d76 GIT binary patch literal 1749 zcmeHH{Xf$Q9RKdoGR&RFW^HpRI+sRCr93Ph%R?f}ti@e)s%d$68Ah9Fi&}bcmWMob zo^F^cY$w%(B=R&JCF>h$lW38e>s~sq`|bXPd)?>tet$l{zaKu?fdSrz`dEDc01PQU zUO}r@yUHdMY;|8JAAAM?kcmLQL;Jq`KmT0?PBQ;IzUp^rVo*RZU~}X`^xL#?4Whf|h9L83B-ss*gS}Lg7N)p3o12U^=Us_E6=;v{@2k%~w{H^O zQC`ORN_5|NB+6AOspFjq`DU#w=5lgI#K54hycKz%g=npZ8oEu$88>*=6xESf3jlBw z#mn;$``O&Y=Lmz-rrqza)>jpo&XkxjXIf|T=fkq|A0}PSi`X0#R9@%$yO&Q3`HV!k zv^(^1-={uIhIYB+(;01QjI3a1Lg9uhHk2ziqVwVE9MO4~3pzP9jBL=l-Eq@Xoh0v< zCB^d*!`KIf!!A`7sV>o$RnaE}uVP}Nt<0m}X$uUa?Qr*j%HFW)!~u?86ctJ#F*46sX0 zv~B=PWWq88#-`vGNbs5@XafQm-3hS(xU<)}vr7fGCYa;8?%g07g-b^c& z1MBg1X@0tHWug(wLF@NXbEH|&+?w|Ffsr!oTLJX5cZf>Cv?GaX6+coLtv8^#e4gzg za1E(3zAi)$Ij=lcW)>TSD1pO*B}P`Xq2}4fayPv^a<6u$=XR93|d-To2^UA1=lnvvoYjp4BQHVNsC zEqj+6Kfz*SsNo){$&oUQw8v7)#*ez1Znt`$C5g(Fc6C%5YaAKWCTwSQWJd0-4>V=P zhN9?RU{aX+G>+MGR=t$b469D(!z^YNAMky0N*Cw?m~3{jFyALCjig#ApX~NkBL2GP zA{qCl-FBztD2GWnd9VzPd6zuy+e^fat;}s>ThOp7e2~<62Rfm1>#^y>bS_-Up-Qds z2d~adhw6y!Ek~W?bU41VXwUJUaN^ti{2PLZ*oKt*TQqAKJz50WzN3V=+S7mG>qK|p X+UP9CTAE$6`n~|lz5uTVa%AS;sVFFc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/com1314080901101_xy.png b/app/src/main/res/drawable/com1314080901101_xy.png new file mode 100644 index 0000000000000000000000000000000000000000..88b90f194d84264133295304fd60413ba8a41b81 GIT binary patch literal 6201 zcmV-97{=#`P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z4Q5G1K~#9!%$j+8ROPwHzq8L|GMSTQ5|WUGNCFaqY${6?3h>D5|7X+bWhDA}Npx_|K zjvc3{sFbELg49L83rdYDG zhcaTsh>rKHRx3?SO%7lx@cE4ZmA0MAE6M0{j48oB4* zdugn1V$s_RnLK3@8m;zbP%n}sQCV5Zci(--p+ko_U0lq}nKOB4x3)6(eP zts82!8bJ`S*=&CXYJe|(%nIBI6ec7jgeN8@vTWIM9)ElS|7oeOtK&pb5&QQaprX8j zPuHvl=(sy-Yik|AJ;96c!X#WWjta;#nM~oMM~@~q_miJQd4Nvw@nmFV(63K#WWd_B z>)K{mCPS@OVKSM*fxMuO9io^!ckac%=Lv!^)nG873)3@U{A2u-A_xLruMd~#;@GjH zJpAy($mMeUeu=QKFeFLpB#NQ~*ng!JNB|ZXjYd9r|9vJt`2@E@x}>G?(8vdIxm@h{ zdPm1u0Wcbk0KX0DdKrM@*cwVm#5&F>F}3;R5FeXD{P`A!WoP5} z``Nj(?JTHNDr7Pl27`g1t%N-2jP%uLG}vr5ZWoauXY=OGloe{XTqt zU%UC<4@i&$+2P^gvg+z;lq$t-10Xgo7QZB6v)YJ?6sT)xVAiZTwOaIgJ&{7>Z3Cct_in_;$FpkHYD}>vKK$@6965Z1b7#*HZU}E*h5m}UbLak2 z5QMIhB%#ykxSgcs{CW26&u?>jBtNOCsWdm8Crqy+F(DDV-ENixT~#U-EiIugso(D> z5D45-09jdCJoxhwXtg@tdSf9qH8n&;8t9eP3zbR*kS+(}6bc39y*(YRgSwtGOW zqDPNA@%#OZ8a)cYBM0mY7rsSlX{cY2l9IxnJ$u-OPsX7vQH%Yg>J-;d~Wg~V&rYBfWL4&}`^-=wm#@`eBupDJ!!^6MZ4rAmRrWe;i7 zYPCp`1Yni}cVAH#?LoT*c%a_rdAAN4_})5)n*rw~Q4 zqiy(z5meXKuz2x1m%Sed1n~K;9s*LSRe1fLD;RuUfHFC7+T-yMZHn&LE&L@WmpEB9i~|mGgK!03~vuKomuK^vGoU_OCkzmdRx_HZ+mDBA3B~2eW(kZZsMV zPfdS{v17;b>tDad#~B7!QPR{P$(2wtrqNd`xOCHRaX%paK*4Ba6}30aX1`-_uqd{)~nZDIGs-P zdOZOtfYYLs#%3Wc2a z|M(uMDXA=6xQM_1{Ryvxh4UI1dZJJ4!%m`tY26s@bSqesuo z%i8UBdjQz21R8*&ZnwK%baWJ(Hfgx^?Zv3?6(g+M6Et4|2LZDhZyRk8#it>{T_?pKZkJ@o@Is zSrQTwgC=wfNl8g;`P*j*(E>w;4hiA@U=Cr?mBK2uz*|3lpSAwj#?ka9jR$J zyarAkv*WBi8{+h}Jr|_0t_iF88YaV-7wP`)a#Vn|zL66}MOe&Ml2ekYs3^zd_F}PG z*|vQfPtSPzG7A}47}WKO!QBrm7RyAXQrRauT)^d*FhmIG`u8Pr+-sN~oBo5kC8c!! zQ9guQt{}QgEUm5Xxii&VJ9M=Sp6cb*N5OJnhx^>T>th@}-E#j~{*thopW5$fe zXpHDE8G?z9DM0C^<6RouZI=?DDG&&Z&PY$k>+|Ary7+kIN^0wB>6Vdxng1LX7KXuK zKoA6CVq!vQ@9^Qn-*JRV}YC_zin@|AYJQzmLYoM)LCVm_2(I zLx&CxNpQH`?%BZF8%i;qJb98XUAnMf!5f@8Q$bQvBI)Vfh>VP)XJ!u)J9nm2r#K`@ zLKH;~<{uPO#%PQnK0X1r+s*ft-;>n2%`x|Q+^pZQ zk(88VhTJ~{pU>CMHs8@!0dUPU>($P{Wg!|MR}@9jVzCU8$z&>xMuSXt;U3tuX*26q zuOlh7GZBK3fBthX;~pJ{$KxS0GZVYrj>%*qCME{8S{>XbF4DVprCYadSS%Lm>grsg zD83PlKG*-K5ae}~8YBYqfSDJU8ay<7Bt5e-`D)uXDl5-0aNt0C_3Fi}S+kKOKRb5p zV9uO5msyn;l^Wy%zY8YwetZn|28ummXiG#-2KruH?4eSrP$(40WHL%iOG!^p$M5&! z^?ENY_Ba}3mrvVmn}0h9e3Qy;;%FK+VhOj;D00000NkvXXu0mjfd*sry literal 0 HcmV?d00001