package com.architjn.materialicons.ui.fragments; import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.architjn.materialicons.R; import com.architjn.materialicons.adapters.LaunchersAdapter; import com.architjn.materialicons.items.LauncherListItem; import com.architjn.materialicons.others.LauncherComparator; import com.architjn.materialicons.ui.HomeActivity; import java.util.ArrayList; import java.util.Collections; /** * Created by architjn on 04/01/16. */ public class ApplyIconFragment extends Fragment { private ArrayList<LauncherListItem> launchers = new ArrayList<>(); private View mainView; private Context context; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mainView = inflater.inflate(R.layout.activity_apply, container, false); context = mainView.getContext(); setActionBar((Toolbar) mainView.findViewById(R.id.toolbar_apply)); if (Build.VERSION.SDK_INT >= 21) { getActivity().getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.primaryColorDark)); getActivity().getWindow().setNavigationBarColor(ContextCompat.getColor(context,R.color.navigationBarBgColor)); } init(); return mainView; } private void setActionBar(Toolbar toolbar) { HomeActivity activity = ((HomeActivity) getActivity()); activity.setSupportActionBar(toolbar); activity.updateToggleButton(toolbar); } private void init() { String[] launcherArray = getResources().getStringArray(R.array.launchers_list); int installed = 0; for (String launcher : launcherArray) { String[] value = launcher.split("\\|"); boolean isInstalled = isLauncherInstalled(value[1]); if (isInstalled) installed++; launchers.add(new LauncherListItem(value, isInstalled)); } Collections.sort(launchers, new LauncherComparator()); LaunchersAdapter adapter = new LaunchersAdapter(context, launchers, installed); RecyclerView rv = (RecyclerView) mainView.findViewById(R.id.apply_rv); LinearLayoutManager layoutManager = new LinearLayoutManager(context); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); layoutManager.scrollToPosition(0); rv.setLayoutManager(layoutManager); rv.setHasFixedSize(true); rv.setAdapter(adapter); } private boolean isLauncherInstalled(String packageName) { final PackageManager pm = context.getPackageManager(); try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); return true; } catch (PackageManager.NameNotFoundException e) { return false; } } }