Changeset View
Changeset View
Standalone View
Standalone View
src/org/kde/kdeconnect/UserInterface/MainActivity.java
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Line(s) | 56 | protected void onCreate(Bundle savedInstanceState) { | |||
---|---|---|---|---|---|
77 | 77 | | |||
78 | mDrawerToggle.setDrawerIndicatorEnabled(true); | 78 | mDrawerToggle.setDrawerIndicatorEnabled(true); | ||
79 | mDrawerToggle.syncState(); | 79 | mDrawerToggle.syncState(); | ||
80 | 80 | | |||
81 | String deviceName = DeviceHelper.getDeviceName(this); | 81 | String deviceName = DeviceHelper.getDeviceName(this); | ||
82 | TextView nameView = (TextView) mDrawerHeader.findViewById(R.id.device_name); | 82 | TextView nameView = (TextView) mDrawerHeader.findViewById(R.id.device_name); | ||
83 | nameView.setText(deviceName); | 83 | nameView.setText(deviceName); | ||
84 | 84 | | |||
85 | View.OnClickListener renameListener = new View.OnClickListener() { | 85 | View.OnClickListener renameListener = v -> renameDevice(); | ||
86 | @Override | | |||
87 | public void onClick(View v) { | | |||
88 | renameDevice(); | | |||
89 | } | | |||
90 | }; | | |||
91 | mDrawerHeader.findViewById(R.id.kdeconnect_label).setOnClickListener(renameListener); | 86 | mDrawerHeader.findViewById(R.id.kdeconnect_label).setOnClickListener(renameListener); | ||
92 | mDrawerHeader.findViewById(R.id.device_name).setOnClickListener(renameListener); | 87 | mDrawerHeader.findViewById(R.id.device_name).setOnClickListener(renameListener); | ||
93 | 88 | | |||
94 | mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { | 89 | mNavigationView.setNavigationItemSelectedListener(menuItem -> { | ||
95 | @Override | | |||
96 | public boolean onNavigationItemSelected(MenuItem menuItem) { | | |||
97 | 90 | | |||
98 | String deviceId = mMapMenuToDeviceId.get(menuItem); | 91 | String deviceId = mMapMenuToDeviceId.get(menuItem); | ||
99 | onDeviceSelected(deviceId); | 92 | onDeviceSelected(deviceId); | ||
100 | 93 | | |||
101 | mDrawerLayout.closeDrawer(mNavigationView); | 94 | mDrawerLayout.closeDrawer(mNavigationView); | ||
102 | 95 | | |||
103 | return true; | 96 | return true; | ||
104 | } | | |||
105 | }); | 97 | }); | ||
106 | 98 | | |||
107 | preferences = getSharedPreferences(STATE_SELECTED_DEVICE, Context.MODE_PRIVATE); | 99 | preferences = getSharedPreferences(STATE_SELECTED_DEVICE, Context.MODE_PRIVATE); | ||
108 | 100 | | |||
109 | String savedDevice; | 101 | String savedDevice; | ||
110 | String pairStatus = ""; | 102 | String pairStatus = ""; | ||
111 | if (getIntent().hasExtra("forceOverview")) { | 103 | if (getIntent().hasExtra("forceOverview")) { | ||
112 | Log.i("MainActivity", "Requested to start main overview"); | 104 | Log.i("MainActivity", "Requested to start main overview"); | ||
▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | 160 | } else { | |||
169 | return super.onOptionsItemSelected(item); | 161 | return super.onOptionsItemSelected(item); | ||
170 | } | 162 | } | ||
171 | } | 163 | } | ||
172 | 164 | | |||
173 | private void updateComputerList() { | 165 | private void updateComputerList() { | ||
174 | 166 | | |||
175 | //Log.e("MainActivity", "UpdateComputerList"); | 167 | //Log.e("MainActivity", "UpdateComputerList"); | ||
176 | 168 | | |||
177 | BackgroundService.RunCommand(MainActivity.this, new BackgroundService.InstanceCallback() { | 169 | BackgroundService.RunCommand(MainActivity.this, service -> { | ||
178 | @Override | | |||
179 | public void onServiceStart(final BackgroundService service) { | | |||
180 | 170 | | |||
181 | Menu menu = mNavigationView.getMenu(); | 171 | Menu menu = mNavigationView.getMenu(); | ||
182 | 172 | | |||
183 | menu.clear(); | 173 | menu.clear(); | ||
184 | mMapMenuToDeviceId.clear(); | 174 | mMapMenuToDeviceId.clear(); | ||
185 | 175 | | |||
186 | int id = 0; | 176 | int id = 0; | ||
187 | Collection<Device> devices = service.getDevices().values(); | 177 | Collection<Device> devices = service.getDevices().values(); | ||
188 | for (Device device : devices) { | 178 | for (Device device : devices) { | ||
189 | if (device.isReachable() && device.isPaired()) { | 179 | if (device.isReachable() && device.isPaired()) { | ||
190 | MenuItem item = menu.add(0, id++, 0, device.getName()); | 180 | MenuItem item = menu.add(0, id++, 0, device.getName()); | ||
191 | item.setIcon(device.getIcon()); | 181 | item.setIcon(device.getIcon()); | ||
192 | item.setCheckable(true); | 182 | item.setCheckable(true); | ||
193 | item.setChecked(device.getDeviceId().equals(mCurrentDevice)); | 183 | item.setChecked(device.getDeviceId().equals(mCurrentDevice)); | ||
194 | mMapMenuToDeviceId.put(item, device.getDeviceId()); | 184 | mMapMenuToDeviceId.put(item, device.getDeviceId()); | ||
195 | } | 185 | } | ||
196 | } | 186 | } | ||
197 | 187 | | |||
198 | MenuItem item = menu.add(99, id++, 0, R.string.pair_new_device); | 188 | MenuItem item = menu.add(99, id++, 0, R.string.pair_new_device); | ||
199 | item.setIcon(R.drawable.ic_action_content_add_circle_outline); | 189 | item.setIcon(R.drawable.ic_action_content_add_circle_outline); | ||
200 | item.setCheckable(true); | 190 | item.setCheckable(true); | ||
201 | item.setChecked(mCurrentDevice == null); | 191 | item.setChecked(mCurrentDevice == null); | ||
202 | mMapMenuToDeviceId.put(item, null); | 192 | mMapMenuToDeviceId.put(item, null); | ||
203 | } | | |||
204 | }); | 193 | }); | ||
205 | } | 194 | } | ||
206 | 195 | | |||
207 | @Override | 196 | @Override | ||
208 | protected void onStart() { | 197 | protected void onStart() { | ||
209 | super.onStart(); | 198 | super.onStart(); | ||
210 | BackgroundService.addGuiInUseCounter(this, true); | 199 | BackgroundService.addGuiInUseCounter(this, true); | ||
211 | BackgroundService.RunCommand(this, new BackgroundService.InstanceCallback() { | 200 | BackgroundService.RunCommand(this, service -> service.addDeviceListChangedCallback("MainActivity", this::updateComputerList)); | ||
212 | @Override | | |||
213 | public void onServiceStart(BackgroundService service) { | | |||
214 | service.addDeviceListChangedCallback("MainActivity", new BackgroundService.DeviceListChangedCallback() { | | |||
215 | @Override | | |||
216 | public void onDeviceListChanged() { | | |||
217 | updateComputerList(); | | |||
218 | } | | |||
219 | }); | | |||
220 | } | | |||
221 | }); | | |||
222 | updateComputerList(); | 201 | updateComputerList(); | ||
223 | } | 202 | } | ||
224 | 203 | | |||
225 | @Override | 204 | @Override | ||
226 | protected void onStop() { | 205 | protected void onStop() { | ||
227 | BackgroundService.removeGuiInUseCounter(this); | 206 | BackgroundService.removeGuiInUseCounter(this); | ||
228 | BackgroundService.RunCommand(this, new BackgroundService.InstanceCallback() { | 207 | BackgroundService.RunCommand(this, service -> service.removeDeviceListChangedCallback("MainActivity")); | ||
229 | @Override | | |||
230 | public void onServiceStart(BackgroundService service) { | | |||
231 | service.removeDeviceListChangedCallback("MainActivity"); | | |||
232 | } | | |||
233 | }); | | |||
234 | super.onStop(); | 208 | super.onStop(); | ||
235 | } | 209 | } | ||
236 | 210 | | |||
237 | //TODO: Make it accept two parameters, a constant with the type of screen and the device id in | 211 | //TODO: Make it accept two parameters, a constant with the type of screen and the device id in | ||
238 | //case the screen is for a device, or even three parameters and the third one be the plugin id? | 212 | //case the screen is for a device, or even three parameters and the third one be the plugin id? | ||
239 | //This way we can keep adding more options with null device id (eg: about, help...) | 213 | //This way we can keep adding more options with null device id (eg: about, help...) | ||
240 | public void onDeviceSelected(String deviceId, boolean fromDeviceList) { | 214 | public void onDeviceSelected(String deviceId, boolean fromDeviceList) { | ||
241 | 215 | | |||
Show All 35 Lines | 249 | protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { | |||
277 | String savedDevice = savedInstanceState.getString(STATE_SELECTED_DEVICE); | 251 | String savedDevice = savedInstanceState.getString(STATE_SELECTED_DEVICE); | ||
278 | onDeviceSelected(savedDevice); | 252 | onDeviceSelected(savedDevice); | ||
279 | } | 253 | } | ||
280 | 254 | | |||
281 | @Override | 255 | @Override | ||
282 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { | 256 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { | ||
283 | switch (requestCode) { | 257 | switch (requestCode) { | ||
284 | case RESULT_NEEDS_RELOAD: | 258 | case RESULT_NEEDS_RELOAD: | ||
285 | BackgroundService.RunCommand(this, new BackgroundService.InstanceCallback() { | 259 | BackgroundService.RunCommand(this, service -> { | ||
286 | @Override | | |||
287 | public void onServiceStart(BackgroundService service) { | | |||
288 | Device device = service.getDevice(mCurrentDevice); | 260 | Device device = service.getDevice(mCurrentDevice); | ||
289 | device.reloadPluginsFromSettings(); | 261 | device.reloadPluginsFromSettings(); | ||
290 | } | | |||
291 | }); | 262 | }); | ||
292 | break; | 263 | break; | ||
293 | default: | 264 | default: | ||
294 | super.onActivityResult(requestCode, resultCode, data); | 265 | super.onActivityResult(requestCode, resultCode, data); | ||
295 | } | 266 | } | ||
296 | } | 267 | } | ||
297 | 268 | | |||
298 | @Override | 269 | @Override | ||
299 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { | 270 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { | ||
300 | for (int result : grantResults) { | 271 | for (int result : grantResults) { | ||
301 | if (result == PackageManager.PERMISSION_GRANTED) { | 272 | if (result == PackageManager.PERMISSION_GRANTED) { | ||
302 | //New permission granted, reload plugins | 273 | //New permission granted, reload plugins | ||
303 | BackgroundService.RunCommand(this, new BackgroundService.InstanceCallback() { | 274 | BackgroundService.RunCommand(this, service -> { | ||
304 | @Override | | |||
305 | public void onServiceStart(BackgroundService service) { | | |||
306 | Device device = service.getDevice(mCurrentDevice); | 275 | Device device = service.getDevice(mCurrentDevice); | ||
307 | device.reloadPluginsFromSettings(); | 276 | device.reloadPluginsFromSettings(); | ||
308 | } | | |||
309 | }); | 277 | }); | ||
310 | } | 278 | } | ||
311 | } | 279 | } | ||
312 | } | 280 | } | ||
313 | 281 | | |||
314 | public void renameDevice() { | 282 | public void renameDevice() { | ||
315 | final TextView nameView = (TextView) mNavigationView.findViewById(R.id.device_name); | 283 | final TextView nameView = (TextView) mNavigationView.findViewById(R.id.device_name); | ||
316 | final EditText deviceNameEdit = new EditText(MainActivity.this); | 284 | final EditText deviceNameEdit = new EditText(MainActivity.this); | ||
317 | String deviceName = DeviceHelper.getDeviceName(MainActivity.this); | 285 | String deviceName = DeviceHelper.getDeviceName(MainActivity.this); | ||
318 | deviceNameEdit.setText(deviceName); | 286 | deviceNameEdit.setText(deviceName); | ||
319 | deviceNameEdit.setPadding( | 287 | deviceNameEdit.setPadding( | ||
320 | ((int) (18 * getResources().getDisplayMetrics().density)), | 288 | ((int) (18 * getResources().getDisplayMetrics().density)), | ||
321 | ((int) (16 * getResources().getDisplayMetrics().density)), | 289 | ((int) (16 * getResources().getDisplayMetrics().density)), | ||
322 | ((int) (18 * getResources().getDisplayMetrics().density)), | 290 | ((int) (18 * getResources().getDisplayMetrics().density)), | ||
323 | ((int) (12 * getResources().getDisplayMetrics().density)) | 291 | ((int) (12 * getResources().getDisplayMetrics().density)) | ||
324 | ); | 292 | ); | ||
325 | new AlertDialog.Builder(MainActivity.this) | 293 | new AlertDialog.Builder(MainActivity.this) | ||
326 | .setView(deviceNameEdit) | 294 | .setView(deviceNameEdit) | ||
327 | .setPositiveButton(R.string.device_rename_confirm, new DialogInterface.OnClickListener() { | 295 | .setPositiveButton(R.string.device_rename_confirm, (dialog, which) -> { | ||
328 | @Override | 296 | String deviceName1 = deviceNameEdit.getText().toString(); | ||
329 | public void onClick(DialogInterface dialog, int which) { | 297 | DeviceHelper.setDeviceName(MainActivity.this, deviceName1); | ||
330 | String deviceName = deviceNameEdit.getText().toString(); | 298 | nameView.setText(deviceName1); | ||
331 | DeviceHelper.setDeviceName(MainActivity.this, deviceName); | 299 | BackgroundService.RunCommand(MainActivity.this, BackgroundService::onNetworkChange); | ||
332 | nameView.setText(deviceName); | | |||
333 | BackgroundService.RunCommand(MainActivity.this, new BackgroundService.InstanceCallback() { | | |||
334 | @Override | | |||
335 | public void onServiceStart(final BackgroundService service) { | | |||
336 | service.onNetworkChange(); | | |||
337 | } | | |||
338 | }); | | |||
339 | } | | |||
340 | }) | 300 | }) | ||
341 | .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { | 301 | .setNegativeButton(R.string.cancel, (dialog, which) -> { | ||
342 | @Override | | |||
343 | public void onClick(DialogInterface dialog, int which) { | | |||
344 | } | | |||
345 | }) | 302 | }) | ||
346 | .setTitle(R.string.device_rename_title) | 303 | .setTitle(R.string.device_rename_title) | ||
347 | .show(); | 304 | .show(); | ||
348 | } | 305 | } | ||
349 | } | 306 | } |