Microsoft Word кулманов даулетхан дипломдық ЖҰмыс docx



Pdf көрінісі
бет14/16
Дата20.05.2022
өлшемі1.07 Mb.
#458438
түріДиплом
1   ...   8   9   10   11   12   13   14   15   16
2021 БАК Құлманов Дәулетхан Полатұлы

В ҚОСЫШАСЫ 
import 
android.content.Intent; 
import 
android.os.Bundle; 
import 
android.support.v7.app.AppCompatActivity; 
import 
android.util.Log; 
import 
android.view.View; 
import 
android.widget.Button; 
import 
android.widget.CheckBox; 
import 
android.widget.CompoundButton; 
import 
android.widget.LinearLayout; 
import 
android.widget.RadioButton; 
import 
android.widget.TextView; 
public 
class 
MainActivity 
extends 
AppCompatActivity 
implements 
View.OnClickListener 

private 
TextView 
audio,video,image,docs,full_scan; 
private 
LinearLayout 
layout_audio,layout_video,layout_image,layout_docs,layout_full_scan; 
private 
CheckBox 
checkbox_audio,checkbox_video,checkbox_image,checkbox_docs,checkbox_full_
scan; 
private 
Button 
button; 
private 
boolean 
isAudio,isVideo,isImage,isDocs,isFullScan; 
@Override
protected 
void 
onCreate(Bundle 
savedInstanceState) 

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
audio=(TextView)findViewById(R.id.scan_audio); 
layout_audio=(LinearLayout)findViewById(R.id.layout_audio); 
checkbox_audio=(CheckBox)findViewById(R.id.checkbox_audio); 
video=(TextView)findViewById(R.id.scan_video); 
layout_video=(LinearLayout)findViewById(R.id.layout_video); 
checkbox_video=(CheckBox)findViewById(R.id.checkbox_video); 
image=(TextView)findViewById(R.id.scan_image); 
layout_image=(LinearLayout)findViewById(R.id.layout_image); 
checkbox_image=(CheckBox)findViewById(R.id.checkbox_image); 
docs=(TextView)findViewById(R.id.scan_docs); 
layout_docs=(LinearLayout)findViewById(R.id.layout_docs); 
checkbox_docs=(CheckBox)findViewById(R.id.checkbox_docs); 
full_scan=(TextView)findViewById(R.id.full_scan); 
layout_full_scan=(LinearLayout)findViewById(R.id.layout_full_scan); 
checkbox_full_scan=(CheckBox)findViewById(R.id.checkbox_full_scan); 


33 
В ҚОСЫШАСЫ 
button=(Button)findViewById(R.id.button); 
button.setOnClickListener(new 
View.OnClickListener(){ 
@Override
public 
void 
onClick(View 
v) 

if(checkbox_audio.isChecked()||checkbox_video.isChecked()||checkbox_image.isC
hecked()||checkbox_docs.isChecked()||checkbox_full_scan.isChecked()) 

Intent 
intent 

new 
Intent(MainActivity.this, 
SearchActivity.class); 
intent.putExtra("isAudio", 
checkbox_audio.isChecked()); 
intent.putExtra("isVideo", 
checkbox_video.isChecked()); 
intent.putExtra("isImage", 
checkbox_image.isChecked()); 
intent.putExtra("isDocs", 
checkbox_docs.isChecked()); 
intent.putExtra("isFullScan", 
checkbox_full_scan.isChecked()); 
startActivity(intent); 


}); 
layout_audio.setOnClickListener(this); 
layout_video.setOnClickListener(this); 
layout_image.setOnClickListener(this); 
layout_docs.setOnClickListener(this); 
layout_full_scan.setOnClickListener(this); 
//select 
checkbox_audio, 
unselect 
others 
checkbox_audio.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() 

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 

if 
(isChecked) 

checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(false); 
checkbox_full_scan.setChecked(false); 


}); 
//select 
checkbox_video, 
unselect 
others 
checkbox_video.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() 

@Override


34 
В ҚОСЫШАСЫ 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 

if 
(isChecked) 

checkbox_audio.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox 
_docs.setChecked(false); 
checkbox_full_scan.setChecked(false); 


}); 
//select 
checkbox_video, 
unselect 
others 
checkbox_image.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() 

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 

if 
(isChecked) 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_docs.setChecked(false); 
checkbox_full_scan.setChecked(false); 


}); 
//select 
checkbox_docs, 
unselect 
others 
checkbox_docs.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() 

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)

if 
(isChecked) 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_full_scan.setChecked(false); 




35 
}); 
В ҚОСЫШАСЫ 
//select 
checkbox_full_scan, 
unselect 
others 
checkbox_full_scan.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() 

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 

if 
(isChecked) 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(false); 


}); 

public 
void 
onClick(View 
v) 

isAudio 

checkbox_audio.isChecked(); 
isVideo 

checkbox_video.isChecked(); 
isImage 

checkbox_image.isChecked(); 
isDocs 

checkbox_docs.isChecked(); 
isFullScan 

checkbox_full_scan.isChecked(); 
switch 
(v.getId()) 

case 
(R.id.layout_audio): 

checkbox_audio.setChecked(!checkbox_audio.isChecked()); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(false); 
checkbox_full_scan.setChecked(false); 
break; 

case 
(R.id.layout_video): 

checkbox_video.setChecked(false); 
checkbox_video.setChecked(!checkbox_video.isChecked()); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(false); 


36 
checkbox_full_scan.setChecked(false); 
break; 
В ҚОСЫШАСЫ 
case 
(R.id.layout_image): 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(!checkbox_image.isChecked()); 
checkbox_docs.setChecked(false); 
checkbox_full_scan.setChecked(false); 
break; 

case 
(R.id.layout_docs): 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(!checkbox_docs.isChecked()); 
checkbox_full_scan.setChecked(false); 
break; 

case 
(R.id.layout_full_scan): 

checkbox_audio.setChecked(false); 
checkbox_video.setChecked(false); 
checkbox_image.setChecked(false); 
checkbox_docs.setChecked(false); 
checkbox_full_scan.setChecked(!checkbox_full_scan.isChecked()); 
break; 

}} 
}; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.os.Environment; 
import android.os.Handler; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.DefaultItemAnimator; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 


37 
import android.util.Log; 
import android.view.View; 
import android.webkit.MimeTypeMap; 
В ҚОСЫШАСЫ 
import android.widget.Button; 
import android.widget.LinearLayout; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.math.BigInteger; 
import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.LinkedList; 
import java.util.List; 
import java.util.Map; 
public class SearchActivity extends AppCompatActivity { 
private final String TAG = SearchActivity.class.getSimpleName(); 
private RecyclerView recyclerView; 
private TitleGroupAdapter mAdapter; 
private List groupTitleList = new ArrayList<>(); 
private LinearLayout linlaHeaderProgress; 
private Button deleteButton; 
MessageDigest messageDigest; 
Map> lists = new HashMap<>(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.content_main); 
linlaHeaderProgress 

(LinearLayout) 
findViewById(R.id.linlaHeaderProgress); 
recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
mAdapter = new TitleGroupAdapter(SearchActivity.this); 
RecyclerView.LayoutManager mLayoutManager = new 
LinearLayoutManager(this); 
recyclerView.setLayoutManager(mLayoutManager); 
recyclerView.setItemAnimator(new DefaultItemAnimator()); 
recyclerView.setAdapter(mAdapter); 
// delete button 
deleteButton = (Button) findViewById(R.id.button_delete); 
deleteButton.setOnClickListener(new View.OnClickListener() { 
public void onClick(View view) { 


38 
//alert dialog 
if(!mAdapter.getSelectedItems().isEmpty()) { 
В ҚОСЫШАСЫ 
AlertDialog.Builder builder = new AlertDialog.Builder(SearchActivity.this); 
builder.setTitle("Удалить?"); 
builder.setPositiveButton(android.R.string.ok, new 
DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
//do something 
for (int i = 0; i < mAdapter.getSelectedItems().size(); i++) { 
//Log.e(TAG, "onClick: " + ((Title) 
mAdapter.getSelectedItems().get(i)).getLink()); 
String linkDeleted = ((Title) 
mAdapter.getSelectedItems().get(i)).getLink(); 
List tg = mAdapter.getTitleGroupFeed(); 
for (int j = 0; j < tg.size(); j++) { 
if (tg.get(j)instanceof Title) { 
Log.e(TAG, "selected: " + ((Title) tg.get(j)).getLink()); 
if (linkDeleted.equals(((Title) tg.get(j)).getLink())) { 
tg.remove(j); 



File file = new File(linkDeleted); 
if (file.exists()) { 
file.delete(); 


mAdapter.notifyDataSetChanged(); 
dialog.cancel(); 

}); 
builder.setNegativeButton(android.R.string.cancel, new 
DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
dialog.cancel(); 

}); 
AlertDialog dialog = builder.create(); 
dialog.show(); 
//end of alert dialog 



39 

В ҚОСЫШАСЫ 
}); 
// progress bar 
linlaHeaderProgress.setVisibility(View.VISIBLE); 
try { 
messageDigest = MessageDigest.getInstance("SHA-256"); 
} catch (NoSuchAlgorithmException e) { 
e.printStackTrace(); 

final Handler handler = new Handler(); 
new Thread(new Runnable() { 
@Override 
public void run() { 
startSearchDuplicateFiles(); 

}).start(); 

public void startSearchDuplicateFiles() { 
//search duplicate files 
File dir = Environment.getExternalStorageDirectory(); 
findDuplicateFiles(lists, dir); 
//show duplicate files 
boolean isAudio = getIntent().getExtras().getBoolean("isAudio"); 
boolean isVideo = getIntent().getExtras().getBoolean("isVideo"); 
boolean isImage = getIntent().getExtras().getBoolean("isImage"); 
boolean isDocs = getIntent().getExtras().getBoolean("isDocs"); 
boolean isFullScan = getIntent().getExtras().getBoolean("isFullScan"); 
int iter = 1; 
for (List list : lists.values()) { 
if (list.size() > 1) { 
String type_of_file = ""; 
for (String file : list) { 
type_of_file = getMimeType(file); 

if (type_of_file != null) { 
//checking for audio 
if (type_of_file.contains("audio") && isAudio) { 
//Log.e(TAG, "------------------------------------------"); 
Group group = new Group(iter); 
groupTitleList.add(group); 
mAdapter.setTitleGroupFeed(groupTitleList); 
for (String file : list) { 


40 
В ҚОСЫШАСЫ 
String stitle = file.substring(file.lastIndexOf('/') + 1); 
//Log.e(TAG, "onCreate: " + getMimeType(file) + stitle); 
Title t = new Title(stitle, file); 
groupTitleList.add(t); 
mAdapter.setTitleGroupFeed(groupTitleList); 

iter++; 

//checking for video 
if (type_of_file.contains("video") && isVideo) { 
//Log.e(TAG, "------------------------------------------"); 
Group group = new Group(iter); 
groupTitleList.add(group); 
mAdapter.setTitleGroupFeed(groupTitleList); 
for (String file : list) { 
String stitle = file.substring(file.lastIndexOf('/') + 1); 
//Log.e(TAG, "onCreate: " + getMimeType(file) + stitle); 
Title t = new Title(stitle, file); 
groupTitleList.add(t); 
mAdapter.setTitleGroupFeed(groupTitleList); 

iter++; 

//checking for image 
if (type_of_file.contains("image") && isImage) { 
//Log.e(TAG, "------------------------------------------"); 
Group group = new Group(iter); 
groupTitleList.add(group); 
mAdapter.setTitleGroupFeed(groupTitleList); 
for (String file : list) { 
String stitle = file.substring(file.lastIndexOf('/') + 1); 
//Log.e(TAG, "onCreate: " + getMimeType(file) + stitle); 
Title t = new Title(stitle, file); 
groupTitleList.add(t); 
mAdapter.setTitleGroupFeed(groupTitleList); 

iter++; 

//checking for docs 
if ((type_of_file.contains("text") || 
type_of_file.contains("application")) && isDocs) { 
В ҚОСЫШАСЫ 


41 
//Log.e(TAG, "------------------------------------------"); 
Group group = new Group(iter); 
groupTitleList.add(group); 
mAdapter.setTitleGroupFeed(groupTitleList); 
for (String file : list) { 
String stitle = file.substring(file.lastIndexOf('/') + 1); 
//Log.e(TAG, "onCreate: " + getMimeType(file) + stitle); 
Title t = new Title(stitle, file); 
groupTitleList.add(t); 
mAdapter.setTitleGroupFeed(groupTitleList); 

iter++; 


if (isFullScan) { 
//checking for full scan 
//Log.e(TAG, "------------------------------------------"); 
Group group = new Group(iter); 
groupTitleList.add(group); 
mAdapter.setTitleGroupFeed(groupTitleList); 
for (String file : list) { 
String stitle = file.substring(file.lastIndexOf('/') + 1); 
//Log.e(TAG, "onCreate: " + getMimeType(file) + stitle); 
Title t = new Title(stitle, file); 
groupTitleList.add(t); 
mAdapter.setTitleGroupFeed(groupTitleList); 

iter++; 



runOnUiThread(new Runnable() { 
@Override 
public void run() { 
mAdapter.notifyDataSetChanged(); 
linlaHeaderProgress.setVisibility(View.GONE); 

}); 

public static String getMimeType(String url) { 
String type = null; 
В ҚОСЫШАСЫ 
String extension = MimeTypeMap.getFileExtensionFromUrl(url); 


42 
if (extension != null) { 
type 

MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); 

return type; 

public void findDuplicateFiles(Map> filesList, File 
directory) { 
for (File dirChild : directory.listFiles()) { 
if (dirChild.isDirectory()) { 
findDuplicateFiles(filesList, dirChild); 
} else { 
try { 
FileInputStream fileInput = new FileInputStream(dirChild); 
if (dirChild.length() > 1073741000) 
return; 
byte fileData[] = new byte[(int) dirChild.length()]; 
fileInput.read(fileData); 
fileInput.close(); 
String uniqueFileHash = new BigInteger(1, 
messageDigest.digest(fileData)).toString(16); 
 
List identicalList = filesList.get(uniqueFileHash); 
if (identicalList == null) { 
identicalList = new LinkedList<>(); 

identicalList.add(dirChild.getAbsolutePath()); 
filesList.put(uniqueFileHash, identicalList); 
} catch (IOException e) { 
throw new RuntimeException("cannot read file " + 
dirChild.getAbsolutePath(), e); 







43 
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖƏНЕ ҒЫЛЫМ МИНИСТРЛІГІ 
Сəтбаев университеті
Ғылыми жетекшінің пікірі
Дипломдық жұмыс
Құлманов Дəулетхан Полатұлы 
5B070300 – Ақпараттық жүйелер
Тақырыбы: Қайталанатын файлдарды табуға арналған мобильді қосымша 
жасау 
Бұл дипломдық жұмыс өзінің логикалық құрылымымен ерекшеленген. 
Түсіндірме жобаның құрамы кіріспеден, 3 бөлімнен, қорытындыдан
əдебиеттер тізімінен жəне қосымшадан тұрады.
Менің пікірімше, диплом жобалаушы алдына қойылған тапсырманы 
толығымен орындады жəне кейінгі технологияларын меңгергендігін көрсетті.
Жалпы дипломдық жоба профессионалдық деңгейде орындалған. 
Түсіндірме жазба сауатты бейнеленген, жоба бойынша барлық қажетті 
ақпараттар бар. 
Кемшілік ретінде кейбір шағын стилистикалық қателерді атап кетуге 
болады. 
Жоғарыда айтылғандарға байланысты, дипломдық жұмыс 5B070300 – 
«Ақпараттық жүйелер» мамандығының бітіру жұмыстарына қойылатын 
талаптарына сəйкес жəне дипломдық жұмыс қорғауға жіберіле алады, ал оның 
авторы Құлманов Дəулетхан Полатұлы бакалавр академиялық дəрежесін алуға 
лайықты деп есептеймін. 
Ғылыми жетекші
Лектор Зиро А.А. 
«24» мая 2021 ж.


10 


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет