Showing
11 changed files
with
489 additions
and
32 deletions
| @@ -148,11 +148,17 @@ | @@ -148,11 +148,17 @@ | ||
| 148 | 148 | ||
| 149 | <activity android:name=".activity.QrCodeShowActivity"> | 149 | <activity android:name=".activity.QrCodeShowActivity"> |
| 150 | </activity> | 150 | </activity> |
| 151 | + <activity android:name=".activity.ConfigWifiActivity"> | ||
| 152 | + </activity> | ||
| 151 | 153 | ||
| 152 | <activity | 154 | <activity |
| 153 | android:name="com.xgimi.gimicinema.activity.SwitchControlActivity" | 155 | android:name="com.xgimi.gimicinema.activity.SwitchControlActivity" |
| 154 | android:theme="@style/AppTheme.NoActionBar"> | 156 | android:theme="@style/AppTheme.NoActionBar"> |
| 157 | + <!-- <intent-filter> | ||
| 158 | + <action android:name="android.intent.action.MAIN"/> | ||
| 155 | 159 | ||
| 160 | + <category android:name="android.intent.category.LAUNCHER"/> | ||
| 161 | + </intent-filter>--> | ||
| 156 | </activity> | 162 | </activity> |
| 157 | </application> | 163 | </application> |
| 158 | 164 |
| @@ -17,7 +17,7 @@ public class Constant { | @@ -17,7 +17,7 @@ public class Constant { | ||
| 17 | public static boolean isAdsOn = false; | 17 | public static boolean isAdsOn = false; |
| 18 | 18 | ||
| 19 | public static boolean gimiAuth = true; | 19 | public static boolean gimiAuth = true; |
| 20 | - public static int count = 2; | 20 | + public static int count = 0; |
| 21 | 21 | ||
| 22 | 22 | ||
| 23 | public static String MOVIE_MESSAGE_NAME_NEW = "/mm.qnt"; | 23 | public static String MOVIE_MESSAGE_NAME_NEW = "/mm.qnt"; |
| @@ -77,6 +77,12 @@ public class Utils { | @@ -77,6 +77,12 @@ public class Utils { | ||
| 77 | return sharedPreferences.getLong(name, 0); | 77 | return sharedPreferences.getLong(name, 0); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | + public static long getLong(Context context, String name) { | ||
| 81 | + SharedPreferences sharedPreferences = context.getSharedPreferences( | ||
| 82 | + Constant.XML_NAME, Context.MODE_PRIVATE); | ||
| 83 | + return sharedPreferences.getLong(name, 0); | ||
| 84 | + } | ||
| 85 | + | ||
| 80 | public static void saveString(Context context, String name, String value) { | 86 | public static void saveString(Context context, String name, String value) { |
| 81 | SharedPreferences sharedPreferences = context.getSharedPreferences( | 87 | SharedPreferences sharedPreferences = context.getSharedPreferences( |
| 82 | Constant.XML_NAME, Context.MODE_PRIVATE); | 88 | Constant.XML_NAME, Context.MODE_PRIVATE); |
| @@ -516,7 +516,8 @@ public class MainActivity extends Activity implements EventListener<String> { | @@ -516,7 +516,8 @@ public class MainActivity extends Activity implements EventListener<String> { | ||
| 516 | testData(); | 516 | testData(); |
| 517 | View popupView = getLayoutInflater().inflate(R.layout.item_pop, null); | 517 | View popupView = getLayoutInflater().inflate(R.layout.item_pop, null); |
| 518 | 518 | ||
| 519 | - popupWindow = new PopupWindow(popupView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true); | 519 | + popupWindow = new PopupWindow(popupView, 200, |
| 520 | + LinearLayout.LayoutParams.WRAP_CONTENT, true); | ||
| 520 | popupWindow.setFocusable(true); | 521 | popupWindow.setFocusable(true); |
| 521 | popupWindow.setOutsideTouchable(true); | 522 | popupWindow.setOutsideTouchable(true); |
| 522 | popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(), (Bitmap) null)); | 523 | popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(), (Bitmap) null)); |
| 1 | +package com.xgimi.gimicinema.activity; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.os.Bundle; | ||
| 5 | +import android.text.TextUtils; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.widget.Button; | ||
| 8 | +import android.widget.EditText; | ||
| 9 | +import android.widget.Toast; | ||
| 10 | +import com.gimi.common.cinema.utils.Utils; | ||
| 11 | +import com.xgimi.gimicinema.R; | ||
| 12 | + | ||
| 13 | +public class ConfigWifiActivity extends Activity { | ||
| 14 | + | ||
| 15 | + private static final String TAG = "ConfigWifiActivity"; | ||
| 16 | + | ||
| 17 | + private EditText mEdtApSsid; | ||
| 18 | + private EditText mEdtApPassword; | ||
| 19 | + private Button mBtnConfig; | ||
| 20 | + | ||
| 21 | + @Override | ||
| 22 | + protected void onCreate(Bundle savedInstanceState) { | ||
| 23 | + super.onCreate(savedInstanceState); | ||
| 24 | + setContentView(R.layout.activity_config_wifi); | ||
| 25 | + String ssid = Utils.getString(this, "wifi-ssid"); | ||
| 26 | + String pwd = Utils.getString(this, "wifi-ssid-pwd"); | ||
| 27 | + | ||
| 28 | + mEdtApSsid = (EditText) findViewById(R.id.ssid_et); | ||
| 29 | + mEdtApPassword = (EditText) findViewById(R.id.pwd_et); | ||
| 30 | + | ||
| 31 | + mEdtApSsid.setText(ssid); | ||
| 32 | + mEdtApPassword.setText(pwd); | ||
| 33 | + | ||
| 34 | + if (TextUtils.isEmpty(ssid)) { | ||
| 35 | + mEdtApSsid.setText("LEMOMOFFICE2.4G"); | ||
| 36 | + mEdtApPassword.setText("88888888"); | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + mBtnConfig = (Button) findViewById(R.id.btn_save); | ||
| 40 | + mBtnConfig.setOnClickListener(new View.OnClickListener() { | ||
| 41 | + @Override | ||
| 42 | + public void onClick(View v) { | ||
| 43 | + String apSsid = mEdtApSsid.getText().toString(); | ||
| 44 | + String apPassword = mEdtApPassword.getText().toString(); | ||
| 45 | + Utils.saveString(ConfigWifiActivity.this, "wifi-ssid", apSsid); | ||
| 46 | + Utils.saveString(ConfigWifiActivity.this, "wifi-ssid-pwd", apPassword); | ||
| 47 | + if (!TextUtils.isEmpty(apSsid) && !TextUtils.isEmpty(apPassword)) { | ||
| 48 | + Toast.makeText(ConfigWifiActivity.this, "保存成功", Toast.LENGTH_SHORT).show(); | ||
| 49 | + } | ||
| 50 | + } | ||
| 51 | + }); | ||
| 52 | + | ||
| 53 | + } | ||
| 54 | +} |
| @@ -59,6 +59,7 @@ import com.gimi.common.cinema.model.Constant; | @@ -59,6 +59,7 @@ import com.gimi.common.cinema.model.Constant; | ||
| 59 | import com.gimi.common.cinema.model.FolderItem; | 59 | import com.gimi.common.cinema.model.FolderItem; |
| 60 | import com.gimi.common.cinema.model.LocalMovieMessage; | 60 | import com.gimi.common.cinema.model.LocalMovieMessage; |
| 61 | import com.gimi.common.cinema.model.MessageEvent; | 61 | import com.gimi.common.cinema.model.MessageEvent; |
| 62 | +import com.gimi.common.cinema.model.RoomInfo; | ||
| 62 | import com.gimi.common.cinema.model.RoomQrCodeInfo; | 63 | import com.gimi.common.cinema.model.RoomQrCodeInfo; |
| 63 | import com.gimi.common.cinema.utils.AuthUtils; | 64 | import com.gimi.common.cinema.utils.AuthUtils; |
| 64 | import com.gimi.common.cinema.utils.LeeImageLoader; | 65 | import com.gimi.common.cinema.utils.LeeImageLoader; |
| @@ -121,15 +122,14 @@ import java.util.Date; | @@ -121,15 +122,14 @@ import java.util.Date; | ||
| 121 | import java.util.List; | 122 | import java.util.List; |
| 122 | import java.util.Locale; | 123 | import java.util.Locale; |
| 123 | 124 | ||
| 124 | -import static com.qnbar.smc.service.SocketService.OPEN_DOOR_CMD; | ||
| 125 | - | ||
| 126 | /** | 125 | /** |
| 127 | * Created by wugian on 2016/9/23 | 126 | * Created by wugian on 2016/9/23 |
| 128 | */ | 127 | */ |
| 129 | public class MainActivity extends BaseActivity implements IMainView, EventListener<String> { | 128 | public class MainActivity extends BaseActivity implements IMainView, EventListener<String> { |
| 129 | + private static final String TAG = "MainActivity"; | ||
| 130 | private long switchNum = 4294967151L; | 130 | private long switchNum = 4294967151L; |
| 131 | private String deviceNum = "FF:FF:FF:FF:00:FF"; | 131 | private String deviceNum = "FF:FF:FF:FF:00:FF"; |
| 132 | - private static final String TAG = "MainActivity"; | 132 | + private String lockMac = "DC:F6:70:C1:AA:D6"; |
| 133 | private Context context; | 133 | private Context context; |
| 134 | 134 | ||
| 135 | private ImageView controlQrCodeIv; | 135 | private ImageView controlQrCodeIv; |
| @@ -452,6 +452,9 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -452,6 +452,9 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 452 | 452 | ||
| 453 | @Override | 453 | @Override |
| 454 | public void countDownOrderTime(int durationMinutes) { | 454 | public void countDownOrderTime(int durationMinutes) { |
| 455 | + if (durationMinutes <= 1) { | ||
| 456 | + return; | ||
| 457 | + } | ||
| 455 | Constant.count = durationMinutes + 1; | 458 | Constant.count = durationMinutes + 1; |
| 456 | PollingUtils.startPollingService(context, 60, CountService.class, CountService.STATUS_ACTION); | 459 | PollingUtils.startPollingService(context, 60, CountService.class, CountService.STATUS_ACTION); |
| 457 | } | 460 | } |
| @@ -463,6 +466,15 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -463,6 +466,15 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 463 | this.info = info; | 466 | this.info = info; |
| 464 | } | 467 | } |
| 465 | 468 | ||
| 469 | + @Override | ||
| 470 | + public void notifyGetRoomInfo(RoomInfo info) { | ||
| 471 | + if (!TextUtils.isEmpty(info.getData().getMac_address())) { | ||
| 472 | + lockMac = info.getData().getMac_address(); | ||
| 473 | + } else { | ||
| 474 | + show("没有配置门禁相关网信息,使用默认信息"); | ||
| 475 | + } | ||
| 476 | + } | ||
| 477 | + | ||
| 466 | 478 | ||
| 467 | int findCount = 0; | 479 | int findCount = 0; |
| 468 | 480 | ||
| @@ -865,7 +877,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -865,7 +877,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 865 | @Subscribe(threadMode = ThreadMode.MAIN) | 877 | @Subscribe(threadMode = ThreadMode.MAIN) |
| 866 | public void onMoonEvent(MessageEvent messageEvent) { | 878 | public void onMoonEvent(MessageEvent messageEvent) { |
| 867 | switch (messageEvent.getEventId()) { | 879 | switch (messageEvent.getEventId()) { |
| 868 | - case OPEN_DOOR_CMD: | 880 | + case SocketService.OPEN_DOOR_CMD: |
| 869 | openDoor(); | 881 | openDoor(); |
| 870 | if (rightSn) { | 882 | if (rightSn) { |
| 871 | down(); | 883 | down(); |
| @@ -924,7 +936,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -924,7 +936,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 924 | Toast.makeText(MainActivity.this, "开门成功", Toast.LENGTH_SHORT).show(); | 936 | Toast.makeText(MainActivity.this, "开门成功", Toast.LENGTH_SHORT).show(); |
| 925 | 937 | ||
| 926 | BLEOpenRecord bleOpenRecord = new BLEOpenRecord(); | 938 | BLEOpenRecord bleOpenRecord = new BLEOpenRecord(); |
| 927 | - bleOpenRecord.setLockmac("DC:F6:70:C1:AA:D6"); | 939 | + bleOpenRecord.setLockmac(lockMac); |
| 928 | bleOpenRecord.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US).format(new Date())); | 940 | bleOpenRecord.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US).format(new Date())); |
| 929 | Intent intent = new Intent(); | 941 | Intent intent = new Intent(); |
| 930 | intent.setAction(GREENBluetoothLeService.ACTION_OPEN_SUCCESS); | 942 | intent.setAction(GREENBluetoothLeService.ACTION_OPEN_SUCCESS); |
| @@ -940,7 +952,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -940,7 +952,7 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 940 | 952 | ||
| 941 | }); | 953 | }); |
| 942 | String openCMD = "Open the door"; | 954 | String openCMD = "Open the door"; |
| 943 | - GREENBLE.send(this, "DC:F6:70:C1:AA:D6", openCMD.getBytes()); | 955 | + GREENBLE.send(this, lockMac, openCMD.getBytes()); |
| 944 | List<LocalMovieMessage> localMovieMessages = new NewDBManager(this).queryRandomMovies(); | 956 | List<LocalMovieMessage> localMovieMessages = new NewDBManager(this).queryRandomMovies(); |
| 945 | if (localMovieMessages != null && localMovieMessages.size() > 0) { | 957 | if (localMovieMessages != null && localMovieMessages.size() > 0) { |
| 946 | OpenMMUtils.openMMWithAds(this, localMovieMessages.get(0).getPlayPath(), null); | 958 | OpenMMUtils.openMMWithAds(this, localMovieMessages.get(0).getPlayPath(), null); |
| @@ -952,6 +964,8 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | @@ -952,6 +964,8 @@ public class MainActivity extends BaseActivity implements IMainView, EventListen | ||
| 952 | private boolean findSwitch = false; | 964 | private boolean findSwitch = false; |
| 953 | 965 | ||
| 954 | void initSwitch() { | 966 | void initSwitch() { |
| 967 | + switchNum = Utils.getLong(this, "sub-device-str"); | ||
| 968 | + deviceNum = Utils.getString(this, "hub-num-str"); | ||
| 955 | FistJni fistJni = FistJni.getInstance(); | 969 | FistJni fistJni = FistJni.getInstance(); |
| 956 | fistJni.startSdk(); | 970 | fistJni.startSdk(); |
| 957 | fistJni.searchLocalDevice(); | 971 | fistJni.searchLocalDevice(); |
| 1 | package com.xgimi.gimicinema.activity; | 1 | package com.xgimi.gimicinema.activity; |
| 2 | 2 | ||
| 3 | +import android.app.AlertDialog; | ||
| 4 | +import android.content.Context; | ||
| 5 | +import android.content.DialogInterface; | ||
| 6 | +import android.content.Intent; | ||
| 7 | +import android.content.res.ColorStateList; | ||
| 8 | +import android.graphics.Bitmap; | ||
| 3 | import android.graphics.Rect; | 9 | import android.graphics.Rect; |
| 10 | +import android.graphics.drawable.BitmapDrawable; | ||
| 4 | import android.os.Bundle; | 11 | import android.os.Bundle; |
| 5 | import android.support.v7.app.AppCompatActivity; | 12 | import android.support.v7.app.AppCompatActivity; |
| 6 | import android.support.v7.widget.GridLayoutManager; | 13 | import android.support.v7.widget.GridLayoutManager; |
| 7 | import android.support.v7.widget.RecyclerView; | 14 | import android.support.v7.widget.RecyclerView; |
| 15 | +import android.text.TextUtils; | ||
| 8 | import android.util.Log; | 16 | import android.util.Log; |
| 17 | +import android.view.LayoutInflater; | ||
| 9 | import android.view.View; | 18 | import android.view.View; |
| 19 | +import android.view.ViewGroup; | ||
| 20 | +import android.widget.AdapterView; | ||
| 21 | +import android.widget.BaseAdapter; | ||
| 22 | +import android.widget.GridView; | ||
| 23 | +import android.widget.LinearLayout; | ||
| 24 | +import android.widget.PopupWindow; | ||
| 25 | +import android.widget.TextView; | ||
| 10 | import android.widget.Toast; | 26 | import android.widget.Toast; |
| 11 | import com.adroplat.fist_switch.jni.Device; | 27 | import com.adroplat.fist_switch.jni.Device; |
| 12 | import com.adroplat.fist_switch.jni.FistJni; | 28 | import com.adroplat.fist_switch.jni.FistJni; |
| 13 | import com.adroplat.fist_switch.jni.SubDevice; | 29 | import com.adroplat.fist_switch.jni.SubDevice; |
| 14 | import com.adroplat.fist_switch.utils.protocol.one.FistProtocol; | 30 | import com.adroplat.fist_switch.utils.protocol.one.FistProtocol; |
| 31 | +import com.gimi.common.cinema.utils.Utils; | ||
| 15 | import com.google.gson.Gson; | 32 | import com.google.gson.Gson; |
| 33 | +import com.qnbar.smc.model.Group; | ||
| 34 | +import com.qnbar.smc.model.Groups; | ||
| 16 | import com.qnbar.switchcontrol.model.SwitchMessageEvent; | 35 | import com.qnbar.switchcontrol.model.SwitchMessageEvent; |
| 17 | import com.xgimi.gimicinema.R; | 36 | import com.xgimi.gimicinema.R; |
| 18 | import com.xgimi.gimicinema.adapter.DeviceListAdapter; | 37 | import com.xgimi.gimicinema.adapter.DeviceListAdapter; |
| @@ -30,8 +49,12 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -30,8 +49,12 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 30 | protected void onCreate(Bundle savedInstanceState) { | 49 | protected void onCreate(Bundle savedInstanceState) { |
| 31 | super.onCreate(savedInstanceState); | 50 | super.onCreate(savedInstanceState); |
| 32 | setContentView(R.layout.activity_switch_control); | 51 | setContentView(R.layout.activity_switch_control); |
| 52 | + mContext = this; | ||
| 53 | + | ||
| 33 | EventBus.getDefault().register(this); | 54 | EventBus.getDefault().register(this); |
| 34 | - //TODO save DeviceNum,SubDeviceNum | 55 | + deviceStrKey = Utils.getString(mContext, "hub-key-str"); |
| 56 | + // save DeviceNum,SubDeviceNum | ||
| 57 | + // 显示菜单指定所控制的HUB 及开关并保存 | ||
| 35 | initList(); | 58 | initList(); |
| 36 | FistJni fistJni = FistJni.getInstance(); | 59 | FistJni fistJni = FistJni.getInstance(); |
| 37 | fistJni.startSdk(); | 60 | fistJni.startSdk(); |
| @@ -79,9 +102,18 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -79,9 +102,18 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 79 | 102 | ||
| 80 | @Override | 103 | @Override |
| 81 | public void onMenuClick(View v, int position) { | 104 | public void onMenuClick(View v, int position) { |
| 82 | - deviceStrKey = FistJni.getHubs().get(position).getDeviceStrKey(); | ||
| 83 | - toast("重设控制口令"); | ||
| 84 | - Log.d("menu", "reset control hub:" + deviceStrKey); | 105 | + testDataHub(); |
| 106 | + initPopupWindow(); | ||
| 107 | + if (popupWindow != null) { | ||
| 108 | + if (!popupWindow.isShowing()) { | ||
| 109 | + popupWindow.showAsDropDown(v); | ||
| 110 | + groupListAdapter.notifyDataSetChanged(); | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + //控制当前主机,保存控制密码 | ||
| 114 | +// deviceStrKey = FistJni.getHubs().get(position).getDeviceStrKey(); | ||
| 115 | +// toast("重设控制口令"); | ||
| 116 | +// Log.d("menu", "reset control hub:" + deviceStrKey); | ||
| 85 | } | 117 | } |
| 86 | }); | 118 | }); |
| 87 | hubRv.setAdapter(hubAdapter); | 119 | hubRv.setAdapter(hubAdapter); |
| @@ -125,23 +157,14 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -125,23 +157,14 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 125 | 157 | ||
| 126 | @Override | 158 | @Override |
| 127 | public void onMenuClick(View v, int position) { | 159 | public void onMenuClick(View v, int position) { |
| 128 | - Device device = null; | ||
| 129 | - for (Device deviceCur : FistJni.getHubs()) { | ||
| 130 | - if (deviceCur.getDeviceStrKey().equals(deviceStrKey)) { | ||
| 131 | - device = deviceCur; | 160 | + testDataLights(); |
| 161 | + initPopupWindow(); | ||
| 162 | + if (popupWindow != null) { | ||
| 163 | + if (!popupWindow.isShowing()) { | ||
| 164 | + popupWindow.showAsDropDown(v); | ||
| 165 | + groupListAdapter.notifyDataSetChanged(); | ||
| 132 | } | 166 | } |
| 133 | } | 167 | } |
| 134 | - if (device == null) { | ||
| 135 | - toast("当前控制口令出错,请重新选择控制主机按menu设置"); | ||
| 136 | - return; | ||
| 137 | - } | ||
| 138 | - | ||
| 139 | - ArrayList<SubDevice> subDevices = new ArrayList<>(); | ||
| 140 | - subDevices.add(FistJni.getSubDevices().get(position)); | ||
| 141 | - device.setSubDevices(subDevices); | ||
| 142 | - FistJni.getInstance().delSub(new Gson().toJson(device)); | ||
| 143 | - FistJni.getSubDevices().clear(); | ||
| 144 | - switchAdapter.notifyDataSetChanged(); | ||
| 145 | } | 168 | } |
| 146 | }); | 169 | }); |
| 147 | switchRv.setAdapter(switchAdapter); | 170 | switchRv.setAdapter(switchAdapter); |
| @@ -167,6 +190,43 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -167,6 +190,43 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 167 | fistJni.modifyPwd(new Gson().toJson(device), "123456"); | 190 | fistJni.modifyPwd(new Gson().toJson(device), "123456"); |
| 168 | } | 191 | } |
| 169 | 192 | ||
| 193 | + private void showAlert() { | ||
| 194 | + String promte = "配置信息不全请重新配置"; | ||
| 195 | + final String ssid = Utils.getString(this, "wifi-ssid"); | ||
| 196 | + final String pwd = Utils.getString(this, "wifi-ssid-pwd"); | ||
| 197 | + if (!TextUtils.isEmpty(ssid) && !TextUtils.isEmpty(pwd)) { | ||
| 198 | + promte = "当前配置信息为:\n\nssid:" + ssid + "\n\npwd:" + pwd; | ||
| 199 | + } | ||
| 200 | + | ||
| 201 | + new AlertDialog.Builder(this) | ||
| 202 | + .setTitle("确认") | ||
| 203 | + .setMessage(promte) | ||
| 204 | + .setPositiveButton("是", new DialogInterface.OnClickListener() { | ||
| 205 | + @Override | ||
| 206 | + public void onClick(DialogInterface dialog, int which) { | ||
| 207 | + Device device = null; | ||
| 208 | + for (Device deviceCur : FistJni.getHubs()) { | ||
| 209 | + if (deviceCur.getDeviceStrKey().equals(deviceStrKey)) { | ||
| 210 | + device = deviceCur; | ||
| 211 | + } | ||
| 212 | + } | ||
| 213 | + if (device == null) { | ||
| 214 | + toast("没有选中控制主机,请重新选择控制主机按menu设置"); | ||
| 215 | + return; | ||
| 216 | + } | ||
| 217 | + FistJni fistJni = FistJni.getInstance(); | ||
| 218 | + fistJni.getlinkRouter(new Gson().toJson(device), ssid, pwd); | ||
| 219 | + } | ||
| 220 | + }) | ||
| 221 | + .setNegativeButton("重新配置", new DialogInterface.OnClickListener() { | ||
| 222 | + @Override | ||
| 223 | + public void onClick(DialogInterface dialog, int which) { | ||
| 224 | + startActivity(new Intent(SwitchControlActivity.this, ConfigWifiActivity.class)); | ||
| 225 | + } | ||
| 226 | + }) | ||
| 227 | + .show(); | ||
| 228 | + } | ||
| 229 | + | ||
| 170 | public void getLinkStatus(View view) { | 230 | public void getLinkStatus(View view) { |
| 171 | FistJni fistJni = FistJni.getInstance(); | 231 | FistJni fistJni = FistJni.getInstance(); |
| 172 | Device device = FistJni.getHubs().get(0); | 232 | Device device = FistJni.getHubs().get(0); |
| @@ -174,10 +234,11 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -174,10 +234,11 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 174 | } | 234 | } |
| 175 | 235 | ||
| 176 | public void setLinkMsg(View view) { | 236 | public void setLinkMsg(View view) { |
| 177 | - FistJni fistJni = FistJni.getInstance(); | ||
| 178 | - Device device = FistJni.getHubs().get(0); | ||
| 179 | -// fistJni.getlinkRouter(new Gson().toJson(device),"Xiaomi123","88888888"); | ||
| 180 | - fistJni.getlinkRouter(new Gson().toJson(device), "LEMOMOFFICE2.4G", "88888888"); | 237 | + showAlert(); |
| 238 | +// FistJni fistJni = FistJni.getInstance(); | ||
| 239 | +// Device device = FistJni.getHubs().get(0); | ||
| 240 | +//// fistJni.getlinkRouter(new Gson().toJson(device),"Xiaomi123","88888888"); | ||
| 241 | +// fistJni.getlinkRouter(new Gson().toJson(device), "LEMOMOFFICE2.4G", "88888888"); | ||
| 181 | } | 242 | } |
| 182 | 243 | ||
| 183 | public void scanHubs(View view) { | 244 | public void scanHubs(View view) { |
| @@ -206,6 +267,14 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -206,6 +267,14 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 206 | case FistJni.DEVICE_HUBS_ONLINE_NOTIFY: | 267 | case FistJni.DEVICE_HUBS_ONLINE_NOTIFY: |
| 207 | case FistProtocol.CommondType.CMD_TYPE_SEARCH_RESPONSE: | 268 | case FistProtocol.CommondType.CMD_TYPE_SEARCH_RESPONSE: |
| 208 | Log.d("qnbar_switch", switchMessageEvent.getMessage()); | 269 | Log.d("qnbar_switch", switchMessageEvent.getMessage()); |
| 270 | + for (Device device : FistJni.getHubs()) { | ||
| 271 | + if ("000000".equals(device.getDeviceStrKey())) { | ||
| 272 | + FistJni.getHubs().clear(); | ||
| 273 | + FistJni fistJni = FistJni.getInstance(); | ||
| 274 | + fistJni.modifyPwd(new Gson().toJson(device), "123456"); | ||
| 275 | + return; | ||
| 276 | + } | ||
| 277 | + } | ||
| 209 | hubAdapter.notifyDataSetChanged(); | 278 | hubAdapter.notifyDataSetChanged(); |
| 210 | break; | 279 | break; |
| 211 | case FistJni.DEVICE_SWITCH_ONLINE_NOTIFY: | 280 | case FistJni.DEVICE_SWITCH_ONLINE_NOTIFY: |
| @@ -222,6 +291,11 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -222,6 +291,11 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 222 | Log.d("qnbar_switch", switchMessageEvent.getMessage()); | 291 | Log.d("qnbar_switch", switchMessageEvent.getMessage()); |
| 223 | toast("子设备有变动"); | 292 | toast("子设备有变动"); |
| 224 | break; | 293 | break; |
| 294 | + case FistProtocol.CommondType.CMD_MODIFY_CTRL_PWD_RESPONSE: | ||
| 295 | + searchLocalDevice(); | ||
| 296 | + Log.d("qnbar_switch", switchMessageEvent.getMessage()); | ||
| 297 | + toast("控制密码已重置"); | ||
| 298 | + break; | ||
| 225 | default: | 299 | default: |
| 226 | Log.d("qnbar_switch", "default:" + switchMessageEvent.getMessage() + "," + switchMessageEvent.getEventId()); | 300 | Log.d("qnbar_switch", "default:" + switchMessageEvent.getMessage() + "," + switchMessageEvent.getEventId()); |
| 227 | break; | 301 | break; |
| @@ -229,7 +303,7 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -229,7 +303,7 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 229 | } | 303 | } |
| 230 | 304 | ||
| 231 | private void toast(String msg) { | 305 | private void toast(String msg) { |
| 232 | - Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); | 306 | + Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); |
| 233 | } | 307 | } |
| 234 | 308 | ||
| 235 | @Override | 309 | @Override |
| @@ -237,4 +311,202 @@ public class SwitchControlActivity extends AppCompatActivity { | @@ -237,4 +311,202 @@ public class SwitchControlActivity extends AppCompatActivity { | ||
| 237 | super.onDestroy(); | 311 | super.onDestroy(); |
| 238 | EventBus.getDefault().unregister(this); | 312 | EventBus.getDefault().unregister(this); |
| 239 | } | 313 | } |
| 314 | + | ||
| 315 | + | ||
| 316 | + private PopupWindow popupWindow; | ||
| 317 | + private Context mContext; | ||
| 318 | + private GroupListAdapter groupListAdapter; | ||
| 319 | + private LayoutInflater inflate; | ||
| 320 | + private boolean isHubs; | ||
| 321 | + | ||
| 322 | + private void initPopupWindow() { | ||
| 323 | +// testDataHub(); | ||
| 324 | + final View popupView = getLayoutInflater().inflate(R.layout.item_pop, null); | ||
| 325 | + | ||
| 326 | + popupWindow = new PopupWindow(popupView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true); | ||
| 327 | + popupWindow.setFocusable(true); | ||
| 328 | + popupWindow.setOutsideTouchable(true); | ||
| 329 | + popupWindow.setBackgroundDrawable(new BitmapDrawable(getResources(), (Bitmap) null)); | ||
| 330 | + inflate = getLayoutInflater(); | ||
| 331 | + GridView listView = (GridView) popupView.findViewById(R.id.list_groups); | ||
| 332 | + TextView title = (TextView) popupView.findViewById(R.id.txt_header_title); | ||
| 333 | + if (isHubs) { | ||
| 334 | + title.setText("设置HUB"); | ||
| 335 | + } else { | ||
| 336 | + title.setText("设置开关"); | ||
| 337 | + } | ||
| 338 | + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { | ||
| 339 | + @Override | ||
| 340 | + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { | ||
| 341 | + if (isHubs) { | ||
| 342 | + switch (position) { | ||
| 343 | + case 0: | ||
| 344 | + //get current click | ||
| 345 | + //控制当前主机,保存控制密码 | ||
| 346 | + deviceStrKey = FistJni.getHubs().get((Integer) hubRv.getFocusedChild().getTag()).getDeviceStrKey(); | ||
| 347 | + String deviceNumStr = FistJni.getHubs().get(position).getStringDeviceNum(); | ||
| 348 | + Utils.saveString(mContext, "hub-num-str", deviceNumStr); | ||
| 349 | + Utils.saveString(mContext, "hub-key-str", deviceStrKey); | ||
| 350 | +// toast("重设控制口令"); | ||
| 351 | + toast("系统记录当前控制主机设备号,重设控制口令"); | ||
| 352 | + Log.d("menu", "reset control hub:" + deviceStrKey); | ||
| 353 | + break; | ||
| 354 | + } | ||
| 355 | + } else { | ||
| 356 | + switch (position) { | ||
| 357 | + case 0: | ||
| 358 | + long subDeviceNum = FistJni.getSubDevices().get((Integer) switchRv.getFocusedChild().getTag()).getSubDeviceNum(); | ||
| 359 | + Utils.saveLong(mContext, "sub-device-str", subDeviceNum); | ||
| 360 | + toast("系统记录当前开关设备号,在特定时间会进行开关"); | ||
| 361 | + break; | ||
| 362 | + case 1: | ||
| 363 | + Device device = null; | ||
| 364 | + for (Device deviceCur : FistJni.getHubs()) { | ||
| 365 | + if (deviceCur.getDeviceStrKey().equals(deviceStrKey)) { | ||
| 366 | + device = deviceCur; | ||
| 367 | + } | ||
| 368 | + } | ||
| 369 | + if (device == null) { | ||
| 370 | + toast("些开关不属于当前控制主机,请重新选择控制主机按menu设置"); | ||
| 371 | + return; | ||
| 372 | + } | ||
| 373 | + ArrayList<SubDevice> subDevices = new ArrayList<>(); | ||
| 374 | + subDevices.add(FistJni.getSubDevices().get((Integer) switchRv.getFocusedChild().getTag())); | ||
| 375 | + device.setSubDevices(subDevices); | ||
| 376 | + FistJni.getInstance().delSub(new Gson().toJson(device)); | ||
| 377 | + FistJni.getSubDevices().clear(); | ||
| 378 | + switchAdapter.notifyDataSetChanged(); | ||
| 379 | + | ||
| 380 | + break; | ||
| 381 | + } | ||
| 382 | + if (popupWindow != null && popupWindow.isShowing()) { | ||
| 383 | + popupWindow.dismiss(); | ||
| 384 | + } | ||
| 385 | + } | ||
| 386 | +// Group group = groupListAdapter.getItem(position); | ||
| 387 | +// allocDeviceGroup(group); | ||
| 388 | + } | ||
| 389 | + }); | ||
| 390 | + groupListAdapter = new GroupListAdapter(); | ||
| 391 | + listView.setAdapter(groupListAdapter); | ||
| 392 | + } | ||
| 393 | + | ||
| 394 | + class GroupListAdapter extends BaseAdapter implements | ||
| 395 | + View.OnClickListener, View.OnLongClickListener { | ||
| 396 | + | ||
| 397 | + public GroupListAdapter() { | ||
| 398 | + | ||
| 399 | + } | ||
| 400 | + | ||
| 401 | + @Override | ||
| 402 | + public boolean isEnabled(int position) { | ||
| 403 | + return false; | ||
| 404 | + } | ||
| 405 | + | ||
| 406 | + @Override | ||
| 407 | + public int getCount() { | ||
| 408 | + return Groups.getInstance().size(); | ||
| 409 | + } | ||
| 410 | + | ||
| 411 | + @Override | ||
| 412 | + public Group getItem(int position) { | ||
| 413 | + return Groups.getInstance().get(position); | ||
| 414 | + } | ||
| 415 | + | ||
| 416 | + @Override | ||
| 417 | + public long getItemId(int position) { | ||
| 418 | + return 0; | ||
| 419 | + } | ||
| 420 | + | ||
| 421 | + @Override | ||
| 422 | + public View getView(int position, View convertView, ViewGroup parent) { | ||
| 423 | + GroupItemHolder holder; | ||
| 424 | + if (convertView == null) { | ||
| 425 | + convertView = inflate.inflate(R.layout.group_item, null); | ||
| 426 | + TextView txtName = (TextView) convertView | ||
| 427 | + .findViewById(R.id.txt_name); | ||
| 428 | + txtName.setOnLongClickListener(this); | ||
| 429 | + holder = new GroupItemHolder(); | ||
| 430 | + holder.txtName = txtName; | ||
| 431 | + convertView.setTag(holder); | ||
| 432 | + } else { | ||
| 433 | + holder = (GroupItemHolder) convertView.getTag(); | ||
| 434 | + } | ||
| 435 | + | ||
| 436 | + Group group = getItem(position); | ||
| 437 | + if (group != null) { | ||
| 438 | + if (group.textColor == null) | ||
| 439 | + group.textColor = mContext.getResources() | ||
| 440 | + .getColorStateList(R.color.black); | ||
| 441 | + holder.txtName.setText(group.name); | ||
| 442 | + holder.txtName.setTag(group.meshAddress); | ||
| 443 | + | ||
| 444 | + if (group.checked) { | ||
| 445 | + ColorStateList color = mContext.getResources() | ||
| 446 | + .getColorStateList(R.color.theme_positive_color); | ||
| 447 | + holder.txtName.setTextColor(color); | ||
| 448 | + } else { | ||
| 449 | + ColorStateList color = mContext.getResources() | ||
| 450 | + .getColorStateList(R.color.black); | ||
| 451 | + holder.txtName.setTextColor(color); | ||
| 452 | + } | ||
| 453 | + } | ||
| 454 | + return convertView; | ||
| 455 | + } | ||
| 456 | + | ||
| 457 | + @Override | ||
| 458 | + public void onClick(View view) { | ||
| 459 | + } | ||
| 460 | + | ||
| 461 | + @Override | ||
| 462 | + public boolean onLongClick(View v) { | ||
| 463 | + return false; | ||
| 464 | + } | ||
| 465 | + | ||
| 466 | + public Group get(int groupAddress) { | ||
| 467 | + return Groups.getInstance().getByMeshAddress(groupAddress); | ||
| 468 | + } | ||
| 469 | + } | ||
| 470 | + | ||
| 471 | + static class GroupItemHolder { | ||
| 472 | + public TextView txtName; | ||
| 473 | + } | ||
| 474 | + | ||
| 475 | + private void testDataHub() { | ||
| 476 | + isHubs = true; | ||
| 477 | + | ||
| 478 | + Groups.getInstance().clear(); | ||
| 479 | + | ||
| 480 | + Group living = new Group(); | ||
| 481 | + living.name = "控制当前主机"; | ||
| 482 | + living.meshAddress = 0x8001; | ||
| 483 | + living.brightness = 100; | ||
| 484 | + living.temperature = 100; | ||
| 485 | + living.color = 0xFFFFFF; | ||
| 486 | + | ||
| 487 | + Groups.getInstance().add(living); | ||
| 488 | + } | ||
| 489 | + | ||
| 490 | + private void testDataLights() { | ||
| 491 | + isHubs = false; | ||
| 492 | + Groups.getInstance().clear(); | ||
| 493 | + | ||
| 494 | + Group living = new Group(); | ||
| 495 | + living.name = "控制当前开关"; | ||
| 496 | + living.meshAddress = 0x8001; | ||
| 497 | + living.brightness = 100; | ||
| 498 | + living.temperature = 100; | ||
| 499 | + living.color = 0xFFFFFF; | ||
| 500 | + | ||
| 501 | + Group family = new Group(); | ||
| 502 | + family.name = "移除此开关"; | ||
| 503 | + family.meshAddress = 0x8002; | ||
| 504 | + family.brightness = 100; | ||
| 505 | + family.temperature = 100; | ||
| 506 | + family.color = 0xFFFFFF; | ||
| 507 | + | ||
| 508 | + Groups.getInstance().add(living); | ||
| 509 | + Groups.getInstance().add(family); | ||
| 510 | + } | ||
| 511 | + | ||
| 240 | } | 512 | } |
| @@ -19,6 +19,7 @@ import android.graphics.Bitmap; | @@ -19,6 +19,7 @@ import android.graphics.Bitmap; | ||
| 19 | 19 | ||
| 20 | import com.gimi.common.cinema.model.ClassificationItem; | 20 | import com.gimi.common.cinema.model.ClassificationItem; |
| 21 | import com.gimi.common.cinema.model.LocalMovieMessage; | 21 | import com.gimi.common.cinema.model.LocalMovieMessage; |
| 22 | +import com.gimi.common.cinema.model.RoomInfo; | ||
| 22 | import com.gimi.common.cinema.model.RoomQrCodeInfo; | 23 | import com.gimi.common.cinema.model.RoomQrCodeInfo; |
| 23 | 24 | ||
| 24 | import java.util.List; | 25 | import java.util.List; |
| @@ -58,4 +59,6 @@ public interface IMainView { | @@ -58,4 +59,6 @@ public interface IMainView { | ||
| 58 | void countDownOrderTime(int durationMinutes); | 59 | void countDownOrderTime(int durationMinutes); |
| 59 | 60 | ||
| 60 | void prepareRoomQrCodeInfo(RoomQrCodeInfo info); | 61 | void prepareRoomQrCodeInfo(RoomQrCodeInfo info); |
| 62 | + | ||
| 63 | + void notifyGetRoomInfo(RoomInfo info); | ||
| 61 | } | 64 | } |
| @@ -214,11 +214,13 @@ public class MainPresenter extends BasePresenter | @@ -214,11 +214,13 @@ public class MainPresenter extends BasePresenter | ||
| 214 | roomInfoModel.getRoomInfo(imei, true, new RoomInfoModelImpl.GetRoomInfoListener() { | 214 | roomInfoModel.getRoomInfo(imei, true, new RoomInfoModelImpl.GetRoomInfoListener() { |
| 215 | @Override | 215 | @Override |
| 216 | public void onGetRoomInfoSuccess(RoomInfo info) { | 216 | public void onGetRoomInfoSuccess(RoomInfo info) { |
| 217 | + mainView.notifyGetRoomInfo(info); | ||
| 217 | Log.d("room-info", "get success:" + info.toString()); | 218 | Log.d("room-info", "get success:" + info.toString()); |
| 218 | } | 219 | } |
| 219 | 220 | ||
| 220 | @Override | 221 | @Override |
| 221 | public void onGetRoomInfoUpdate(RoomInfo info) { | 222 | public void onGetRoomInfoUpdate(RoomInfo info) { |
| 223 | + mainView.notifyGetRoomInfo(info); | ||
| 222 | Log.d("room-info", "update success:" + info.toString()); | 224 | Log.d("room-info", "update success:" + info.toString()); |
| 223 | } | 225 | } |
| 224 | 226 | ||
| @@ -239,6 +241,7 @@ public class MainPresenter extends BasePresenter | @@ -239,6 +241,7 @@ public class MainPresenter extends BasePresenter | ||
| 239 | public void onGetRoomStatusSuccess(RoomStatusInfo info) { | 241 | public void onGetRoomStatusSuccess(RoomStatusInfo info) { |
| 240 | RoomStatusInfo.DataEntity data = info.getData(); | 242 | RoomStatusInfo.DataEntity data = info.getData(); |
| 241 | int durationMinutes = data.getEnd_time() - data.getBegin_time(); | 243 | int durationMinutes = data.getEnd_time() - data.getBegin_time(); |
| 244 | + Log.d("CountService", "durationMinutes:" + durationMinutes); | ||
| 242 | mainView.countDownOrderTime(durationMinutes); | 245 | mainView.countDownOrderTime(durationMinutes); |
| 243 | roomInfoModel.getRoomQrCode(data.getOrder_sn(), new RoomInfoModelImpl.GetRoomQrCodeListener() { | 246 | roomInfoModel.getRoomQrCode(data.getOrder_sn(), new RoomInfoModelImpl.GetRoomQrCodeListener() { |
| 244 | @Override | 247 | @Override |
| 1 | +<!-- | ||
| 2 | + ~ Copyright 2017 wugian | ||
| 3 | + ~ | ||
| 4 | + ~ Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + ~ you may not use this file except in compliance with the License. | ||
| 6 | + ~ You may obtain a copy of the License at | ||
| 7 | + ~ | ||
| 8 | + ~ http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + ~ | ||
| 10 | + ~ Unless required by applicable law or agreed to in writing, software | ||
| 11 | + ~ distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + ~ See the License for the specific language governing permissions and | ||
| 14 | + ~ limitations under the License. | ||
| 15 | + --> | ||
| 16 | + | ||
| 17 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 18 | + android:layout_width="match_parent" | ||
| 19 | + android:layout_height="match_parent" | ||
| 20 | + android:background="@android:color/white" | ||
| 21 | + android:orientation="vertical"> | ||
| 22 | + | ||
| 23 | + <RelativeLayout | ||
| 24 | + android:layout_width="match_parent" | ||
| 25 | + android:layout_height="wrap_content" | ||
| 26 | + > | ||
| 27 | + | ||
| 28 | + <ImageView | ||
| 29 | + android:id="@+id/img_header_menu_left" | ||
| 30 | + android:layout_width="wrap_content" | ||
| 31 | + android:layout_height="wrap_content" | ||
| 32 | + android:layout_alignParentStart="true" | ||
| 33 | + android:layout_centerVertical="true" | ||
| 34 | + android:layout_marginStart="10dp" | ||
| 35 | + android:contentDescription="@null"/> | ||
| 36 | + | ||
| 37 | + <TextView | ||
| 38 | + android:id="@+id/txt_header_title" | ||
| 39 | + android:layout_width="wrap_content" | ||
| 40 | + android:layout_height="wrap_content" | ||
| 41 | + android:layout_alignWithParentIfMissing="false" | ||
| 42 | + android:layout_centerHorizontal="true" | ||
| 43 | + android:layout_centerInParent="true" | ||
| 44 | + android:layout_centerVertical="true" | ||
| 45 | + android:layout_marginEnd="30dp" | ||
| 46 | + android:layout_marginStart="30dp" | ||
| 47 | + android:gravity="center_vertical" | ||
| 48 | + android:singleLine="true" | ||
| 49 | + android:text="配置WIFI信息" | ||
| 50 | + android:textAlignment="center" | ||
| 51 | + android:textColor="@android:color/black" | ||
| 52 | + android:textSize="18sp"/> | ||
| 53 | + </RelativeLayout> | ||
| 54 | + | ||
| 55 | + <LinearLayout | ||
| 56 | + android:layout_width="match_parent" | ||
| 57 | + android:layout_height="wrap_content" | ||
| 58 | + android:layout_marginLeft="5dp" | ||
| 59 | + android:layout_marginRight="5dp" | ||
| 60 | + android:layout_marginTop="15dp" | ||
| 61 | + android:orientation="vertical"> | ||
| 62 | + | ||
| 63 | + | ||
| 64 | + <EditText | ||
| 65 | + android:id="@+id/ssid_et" | ||
| 66 | + android:layout_width="match_parent" | ||
| 67 | + android:layout_height="wrap_content" | ||
| 68 | + android:editable="false" | ||
| 69 | + android:ems="10" | ||
| 70 | + android:inputType="text" | ||
| 71 | + android:labelFor="@+id/txt_mesh_name" | ||
| 72 | + android:hint="ssid"/> | ||
| 73 | + | ||
| 74 | + <EditText | ||
| 75 | + android:id="@+id/pwd_et" | ||
| 76 | + android:layout_width="match_parent" | ||
| 77 | + android:layout_height="wrap_content" | ||
| 78 | + android:ems="10" | ||
| 79 | + android:layout_marginTop="10dp" | ||
| 80 | + android:inputType="textPassword" | ||
| 81 | + android:labelFor="@+id/txt_mesh_password" | ||
| 82 | + android:hint="password"/> | ||
| 83 | + | ||
| 84 | + | ||
| 85 | + <Button | ||
| 86 | + android:id="@+id/btn_save" | ||
| 87 | + android:layout_width="match_parent" | ||
| 88 | + android:layout_height="46dp" | ||
| 89 | + android:layout_marginTop="15dp" | ||
| 90 | + android:text="保存WIFI信息" | ||
| 91 | + android:textColor="@android:color/black" | ||
| 92 | + android:textSize="18sp"/> | ||
| 93 | + | ||
| 94 | + </LinearLayout> | ||
| 95 | + | ||
| 96 | + | ||
| 97 | +</LinearLayout> |
| @@ -30,6 +30,7 @@ | @@ -30,6 +30,7 @@ | ||
| 30 | 30 | ||
| 31 | <GridView | 31 | <GridView |
| 32 | android:id="@+id/list_groups" | 32 | android:id="@+id/list_groups" |
| 33 | + android:listSelector="@android:drawable/list_selector_background" | ||
| 33 | android:layout_width="match_parent" | 34 | android:layout_width="match_parent" |
| 34 | android:layout_height="match_parent" | 35 | android:layout_height="match_parent" |
| 35 | android:fadingEdge="none" | 36 | android:fadingEdge="none" |
Please
register
or
login
to post a comment