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