13506f3f39a1328465009ec080a741373b338beadRakesh Iyer/* 23506f3f39a1328465009ec080a741373b338beadRakesh Iyer * Copyright (C) 2015 The Android Open Source Project 33506f3f39a1328465009ec080a741373b338beadRakesh Iyer * 43506f3f39a1328465009ec080a741373b338beadRakesh Iyer * Licensed under the Apache License, Version 2.0 (the "License"); 53506f3f39a1328465009ec080a741373b338beadRakesh Iyer * you may not use this file except in compliance with the License. 63506f3f39a1328465009ec080a741373b338beadRakesh Iyer * You may obtain a copy of the License at 73506f3f39a1328465009ec080a741373b338beadRakesh Iyer * 83506f3f39a1328465009ec080a741373b338beadRakesh Iyer * http://www.apache.org/licenses/LICENSE-2.0 93506f3f39a1328465009ec080a741373b338beadRakesh Iyer * 103506f3f39a1328465009ec080a741373b338beadRakesh Iyer * Unless required by applicable law or agreed to in writing, software 113506f3f39a1328465009ec080a741373b338beadRakesh Iyer * distributed under the License is distributed on an "AS IS" BASIS, 123506f3f39a1328465009ec080a741373b338beadRakesh Iyer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133506f3f39a1328465009ec080a741373b338beadRakesh Iyer * See the License for the specific language governing permissions and 143506f3f39a1328465009ec080a741373b338beadRakesh Iyer * limitations under the License. 153506f3f39a1328465009ec080a741373b338beadRakesh Iyer */ 163506f3f39a1328465009ec080a741373b338beadRakesh Iyerpackage com.android.car.systemupdater; 173506f3f39a1328465009ec080a741373b338beadRakesh Iyer 183506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.app.Fragment; 193506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.os.Bundle; 203506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.view.LayoutInflater; 213506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.view.View; 223506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.view.ViewGroup; 233506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.widget.AdapterView; 243506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.widget.Button; 253506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.widget.ListView; 263506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.widget.TextView; 273506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport android.widget.Toast; 283506f3f39a1328465009ec080a741373b338beadRakesh Iyer 293506f3f39a1328465009ec080a741373b338beadRakesh Iyerimport java.io.File; 303506f3f39a1328465009ec080a741373b338beadRakesh Iyer 313506f3f39a1328465009ec080a741373b338beadRakesh Iyerpublic class DeviceListFragment extends Fragment { 323506f3f39a1328465009ec080a741373b338beadRakesh Iyer private ListView mFolderListView; 333506f3f39a1328465009ec080a741373b338beadRakesh Iyer private SystemUpdaterActivity mActivity; 343506f3f39a1328465009ec080a741373b338beadRakesh Iyer private File[] mFileNames = new File[0]; 353506f3f39a1328465009ec080a741373b338beadRakesh Iyer private FileAdapter mAdapter; 363506f3f39a1328465009ec080a741373b338beadRakesh Iyer private Button mBackButton; 373506f3f39a1328465009ec080a741373b338beadRakesh Iyer private TextView mTitle; 383506f3f39a1328465009ec080a741373b338beadRakesh Iyer private String mTitleText; 393506f3f39a1328465009ec080a741373b338beadRakesh Iyer 403506f3f39a1328465009ec080a741373b338beadRakesh Iyer @Override 413506f3f39a1328465009ec080a741373b338beadRakesh Iyer public void onCreate(Bundle savedInstanceState) { 423506f3f39a1328465009ec080a741373b338beadRakesh Iyer super.onCreate(savedInstanceState); 433506f3f39a1328465009ec080a741373b338beadRakesh Iyer mActivity = (SystemUpdaterActivity) getActivity(); 443506f3f39a1328465009ec080a741373b338beadRakesh Iyer mAdapter = new FileAdapter(mActivity, R.layout.folder_entry, mFileNames); 453506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 463506f3f39a1328465009ec080a741373b338beadRakesh Iyer @Override 473506f3f39a1328465009ec080a741373b338beadRakesh Iyer public View onCreateView(LayoutInflater inflater, final ViewGroup container, 483506f3f39a1328465009ec080a741373b338beadRakesh Iyer Bundle savedInstanceState) { 493506f3f39a1328465009ec080a741373b338beadRakesh Iyer View v = inflater.inflate(R.layout.folder_list, container, false); 503506f3f39a1328465009ec080a741373b338beadRakesh Iyer mTitle = (TextView) v.findViewById(R.id.title); 513506f3f39a1328465009ec080a741373b338beadRakesh Iyer if (mTitleText != null) { 523506f3f39a1328465009ec080a741373b338beadRakesh Iyer mTitle.setText(mTitleText); 533506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 543506f3f39a1328465009ec080a741373b338beadRakesh Iyer mFolderListView = (ListView) v.findViewById(R.id.folder_list); 553506f3f39a1328465009ec080a741373b338beadRakesh Iyer mFolderListView.setAdapter(mAdapter); 563506f3f39a1328465009ec080a741373b338beadRakesh Iyer mFolderListView.setOnItemClickListener(mItemClickListener); 573506f3f39a1328465009ec080a741373b338beadRakesh Iyer mBackButton = (Button) v.findViewById(R.id.back); 583506f3f39a1328465009ec080a741373b338beadRakesh Iyer mBackButton.setOnClickListener(mBackButtonListener); 593506f3f39a1328465009ec080a741373b338beadRakesh Iyer return v; 603506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 613506f3f39a1328465009ec080a741373b338beadRakesh Iyer 623506f3f39a1328465009ec080a741373b338beadRakesh Iyer public void updateList(File[] locations) { 633506f3f39a1328465009ec080a741373b338beadRakesh Iyer if (locations != null) { 643506f3f39a1328465009ec080a741373b338beadRakesh Iyer mFileNames = locations; 653506f3f39a1328465009ec080a741373b338beadRakesh Iyer if (mAdapter != null) { 663506f3f39a1328465009ec080a741373b338beadRakesh Iyer mAdapter.setLocations(mFileNames); 673506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 683506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 693506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 703506f3f39a1328465009ec080a741373b338beadRakesh Iyer 713506f3f39a1328465009ec080a741373b338beadRakesh Iyer public void updateTitle(String title) { 723506f3f39a1328465009ec080a741373b338beadRakesh Iyer if (mTitle != null) { 733506f3f39a1328465009ec080a741373b338beadRakesh Iyer mTitle.setText(title); 743506f3f39a1328465009ec080a741373b338beadRakesh Iyer } else { 753506f3f39a1328465009ec080a741373b338beadRakesh Iyer mTitleText = title; 763506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 773506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 783506f3f39a1328465009ec080a741373b338beadRakesh Iyer 793506f3f39a1328465009ec080a741373b338beadRakesh Iyer private final View.OnClickListener mBackButtonListener = 803506f3f39a1328465009ec080a741373b338beadRakesh Iyer new View.OnClickListener() { 813506f3f39a1328465009ec080a741373b338beadRakesh Iyer @Override 823506f3f39a1328465009ec080a741373b338beadRakesh Iyer public void onClick(View view) { 833506f3f39a1328465009ec080a741373b338beadRakesh Iyer mActivity.onBackPressed(); 843506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 853506f3f39a1328465009ec080a741373b338beadRakesh Iyer }; 863506f3f39a1328465009ec080a741373b338beadRakesh Iyer 873506f3f39a1328465009ec080a741373b338beadRakesh Iyer private final AdapterView.OnItemClickListener mItemClickListener = 883506f3f39a1328465009ec080a741373b338beadRakesh Iyer new AdapterView.OnItemClickListener() { 893506f3f39a1328465009ec080a741373b338beadRakesh Iyer @Override 903506f3f39a1328465009ec080a741373b338beadRakesh Iyer public void onItemClick(AdapterView<?> adapterView, View view, 913506f3f39a1328465009ec080a741373b338beadRakesh Iyer int position, long id) { 923506f3f39a1328465009ec080a741373b338beadRakesh Iyer if (mFileNames[position].getName().endsWith(".zip")) { 933506f3f39a1328465009ec080a741373b338beadRakesh Iyer mActivity.checkPackage(mFileNames[position]); 943506f3f39a1328465009ec080a741373b338beadRakesh Iyer } else if (mFileNames[position].isDirectory()) { 953506f3f39a1328465009ec080a741373b338beadRakesh Iyer mActivity.showFolderContent(mFileNames[position]); 963506f3f39a1328465009ec080a741373b338beadRakesh Iyer } else { 973506f3f39a1328465009ec080a741373b338beadRakesh Iyer Toast.makeText(mActivity, "This is not a valid file for updating", 983506f3f39a1328465009ec080a741373b338beadRakesh Iyer Toast.LENGTH_LONG).show(); 993506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 1003506f3f39a1328465009ec080a741373b338beadRakesh Iyer } 1013506f3f39a1328465009ec080a741373b338beadRakesh Iyer }; 1023506f3f39a1328465009ec080a741373b338beadRakesh Iyer} 103