From 0119e703ff4a8f3201610c2866702f7f92da0b26 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 26 Jul 2020 18:11:10 +0200 Subject: initial import --- .../javispedro/autobluetether/DeviceFragment.java | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 app/src/main/java/com/javispedro/autobluetether/DeviceFragment.java (limited to 'app/src/main/java/com/javispedro/autobluetether/DeviceFragment.java') diff --git a/app/src/main/java/com/javispedro/autobluetether/DeviceFragment.java b/app/src/main/java/com/javispedro/autobluetether/DeviceFragment.java new file mode 100644 index 0000000..2f8099c --- /dev/null +++ b/app/src/main/java/com/javispedro/autobluetether/DeviceFragment.java @@ -0,0 +1,92 @@ +package com.javispedro.autobluetether; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +/** + * A fragment representing a list of Items. + */ +public class DeviceFragment extends Fragment { + private RecyclerView mRecyclerView; + private BtDeviceRecyclerViewAdapter mAdapter; + private BtDeviceEnabledSetAdapter mEnabledAdapter; + + private static final String ARG_COLUMN_COUNT = "column-count"; + private int mColumnCount = 1; + + /** + * Mandatory empty constructor for the fragment manager to instantiate the + * fragment (e.g. upon screen orientation changes). + */ + public DeviceFragment() { + } + + @SuppressWarnings("unused") + public static DeviceFragment newInstance(int columnCount) { + DeviceFragment fragment = new DeviceFragment(); + Bundle args = new Bundle(); + args.putInt(ARG_COLUMN_COUNT, columnCount); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getArguments() != null) { + mColumnCount = getArguments().getInt(ARG_COLUMN_COUNT); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_device_list, container, false); + mRecyclerView = (RecyclerView) view; + + Context context = view.getContext(); + + if (mColumnCount <= 1) { + mRecyclerView.setLayoutManager(new LinearLayoutManager(context)); + } else { + mRecyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount)); + } + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + mEnabledAdapter = new BtDeviceEnabledSetAdapter(prefs, getString(R.string.prefs_key_device_list)); + + mAdapter = new BtDeviceRecyclerViewAdapter(); + mAdapter.setBtDeviceEnabledSetAdapter(mEnabledAdapter); + mRecyclerView.setAdapter(mAdapter); + + return mRecyclerView; + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + mRecyclerView = null; + mAdapter = null; + } + + public void refreshList() { + BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + ArrayList devices = new ArrayList<>(adapter.getBondedDevices()); + mAdapter.setValues(devices); + } +} \ No newline at end of file -- cgit v1.2.3